SharePoint ドキュメント ライブラリにあるデータのインデックスを作成する

重要

SharePoint インデクサーのサポートは、現在パブリック プレビュー段階にあり、追加の使用条件が適用されます。 この機能へのアクセスの要求を行い、アクセスが有効になったら、プレビュー REST API (2020-06-30-preview 以降) を使用してコンテンツのインデックスを作成します。 現時点で、ポータルによるサポートは制限されており、.NET SDK によるサポートはありません。

Azure Cognitive Search でのフルテキスト検索のために、SharePoint ドキュメント ライブラリに格納されているドキュメントのインデックスを作成するには、検索インデクサーを構成します。 この記事では、その構成手順と、発生する可能性のある動作とシナリオについて詳しく説明します。

注意

SharePoint では、ユーザーごとのアクセスをドキュメント レベルで決定する詳細な認可モデルがサポートされています。 これらのアクセス許可が SharePoint インデクサーによって検索インデックスに設定されることはありません。また、Cognitive Search でドキュメントレベルの認可はサポートされていません。 SharePoint からのインデックスがドキュメントに付けられ、検索サービスに設定されると、そのインデックスに読み取りアクセスできる誰もがコンテンツを利用できます。 ドキュメントレベルのアクセス許可が必要な場合、権限のないコンテンツの結果をトリミングするためにセキュリティ フィルターを調べてください。

機能

Azure Cognitive Search のインデクサーは、データ ソースから検索可能なデータとメタデータを抽出するクローラーです。 SharePoint インデクサーは、SharePoint サイトに接続し、1 つ以上のドキュメント ライブラリにあるドキュメントのインデックスを作成します。 インデクサーには以下の機能があります。

  • 1 つ以上のドキュメント ライブラリにあるコンテンツとメタデータのインデックスを作成します。
  • 増分インデックス作成。インデクサーは、どのファイルが変更されたかを識別し、更新されたコンテンツのみのインデックスを作成します。 たとえば、最初に 5 つの PDF のインデックスが作成され、1 つが更新された場合、更新された PDF のインデックスだけが作成されます。
  • 削除の検出が組み込まれています。 ドキュメント ライブラリからドキュメントが削除された場合、インデクサーは次回のインデクサー実行時に削除を検出し、そのドキュメントをインデックスから削除します。
  • インデックスが作成されるドキュメントからは、既定でテキストおよび正規化された画像が抽出されます。 必要に応じて、AI エンリッチメントのためにスキルセットをパイプラインに追加できます。

[前提条件]

サポートされるドキュメントの形式

SharePoint インデクサーは、次の形式のドキュメントからテキストを抽出できます。

SharePoint インデクサーの構成

SharePoint インデクサーを設定するには、一部のタスクを Azure portal で、他のタスクをプレビューの REST API で実行する必要があります。

次のビデオでは、SharePoint インデクサーを設定する方法を説明します。

手順 1 (省略可能): システム割り当てマネージド ID を有効にする

システム割り当てマネージド ID が有効になると、Azure によって検索サービス用の ID が作成され、インデクサーで使用することができるようになります。 この ID は、検索サービスがプロビジョニングされているテナントを自動的に検出するために使用されます。

SharePoint サイトが検索サービスと同じテナント内にある場合は、Azure portal で検索サービスに対してシステム割り当てマネージド ID を有効にする必要があります。 SharePoint サイトが検索サービスとは異なるテナント内にある場合は、この手順をスキップします。

Enable system assigned managed identity

[保存] を選択した後に、検索サービスに割り当てられたオブジェクト ID が表示されます。

System assigned managed identity

手順 2: インデクサーに必要なアクセス許可を決定する

SharePoint インデクサーは、委任されたアクセス許可とアプリケーションのアクセス許可の両方をサポートします。 シナリオに基づいて、使用するアクセス許可を選択します。

  • 委任されたアクセス許可。インデクサーは、要求を送信したユーザーまたはアプリケーションの ID で実行されます。 データ アクセスは、ユーザーがアクセスできるサイトおよびファイルに制限されます。 削除されたアクセス許可をサポートするために、インデクサーはユーザーの代わりにログインするためにデバイス コード プロンプトを必要とします。

  • アプリケーションのアクセス許可。インデクサーは、SharePoint テナント内のすべてのサイトとファイルにアクセスできる SharePoint テナントの ID で実行されます。 インデクサーで SharePoint テナントにアクセスするには、クライアント シークレットが必要です。 また、インデクサーは、任意のコンテンツにインデックスを作成する前に、テナント管理者の承認を必要とします。

ステップ 3: Azure AD アプリケーションを作成する

SharePoint インデクサーは、この Azure Active Directory (Azure AD) アプリケーションを認証に使用します。

  1. Azure portal にサインインします

  2. Azure Active Directory を検索するか、それに移動し、[アプリの登録] を選択します。

  3. [+ 新規登録] を選択します。

    1. ご自分のアプリの名前を指定します。
    2. [シングル テナント] を選択します。
    3. URI 指定手順をスキップします。 リダイレクト URI は必要ありません。
    4. [登録] を選択します。
  4. 左側で、[API のアクセス許可][アクセス許可の追加][Microsoft Graph] の順に選択します。

    • インデクサーが委任された API のアクセス許可を使用している場合は、[委任されたアクセス許可] を選択し、次を追加します。

      • 委任済み - Files.Read.All
      • 委任済み - Sites.Read.All
      • 委任済み - User.Read

      Delegated API permissions

      委任されたアクセス許可により、検索クライアントは、現在のユーザーのセキュリティ ID で SharePoint に接続できます。

    • インデクサーがアプリケーション API のアクセス許可を使用している場合は、[アプリケーションのアクセス許可] を選択し、次のように追加します。

      • Application - Files.Read.All
      • Application - Sites.Read.All

      Application API permissions

      アプリケーションのアクセス許可を使用すると、インデクサーはサービス コンテキスト内の SharePoint サイトにアクセスします。 そのため、インデクサーを実行すると、SharePoint テナントのすべてのコンテンツにアクセスできるようになります。そのためには、テナント管理者の承認が必要です。 クライアント シークレットは、認証にも必要です。 クライアント シークレットの設定については、この記事の後半で説明します。

  5. 管理者の同意を与えます。

    アプリケーション API のアクセス許可を使用する場合は、テナント管理者の同意が必要です。 一部のテナントはロックダウンされていて、委任された API アクセス許可にも、そのテナント管理者の同意必要です。 どちらかが該当する場合は、インデクサーを作成する前に、この Azure AD アプリケーションに対してテナント管理者が同意する必要があります。

    Azure AD app grant admin consent

  6. [認証] タブをクリックします。

  7. [Allow public client flows](パブリック クライアント フローを許可する)[はい] に設定してから、[保存] を選択します。

  8. [+ プラットフォームを追加][モバイル アプリケーションとデスクトップ アプリケーション] の順に選択し、https://login.microsoftonline.com/common/oauth2/nativeclient のチェック ボックスをオンにしてから、 [構成] を選択します。

    Azure AD app authentication configuration

  9. (アプリケーション API のアクセス許可のみ) アプリケーションのアクセス許可を使用して Azure AD アプリケーションに対して認証するには、インデクサーにクライアント シークレットが必要です。

    • 左側のメニューから [証明書とシークレット] を選択し、[クライアント シークレット][新しいクライアント シークレット] の順にクリックします。

      New client secret

    • ポップアップ表示されたメニューで、新しいクライアント シークレットの説明を入力します。 必要に応じて有効期限を調整します。 有効期限が切れた場合、シークレットを再作成する必要があり、インデクサーを新しいシークレットで更新する必要があります。

      Setup client secret

    • 新しいクライアント シークレットが [シークレット] の一覧に表示されます。 ページから移動すると、シークレットは表示されなくなります。そのため、[コピー] ボタンを使用してコピーし、安全な場所に保存してください。

      Copy client secret

手順 4: データ ソースを作成する

重要

このセクションではまず、残りの手順にプレビュー REST API を使用する必要があります。 Azure Cognitive Search REST API に慣れていない場合は、このクイックスタートを参照することをお勧めします。

データ ソースでは、インデックスを作成するデータ、データにアクセスするために必要な資格情報、およびデータの変更 (新しい行、変更された行、削除された行) を効率よく識別するためのポリシーを指定します。 データ ソースは、同じ Search サービス内の複数のインデクサーで使用できます。

SharePoint のインデックスを作成する場合は、次の必須プロパティがデータ ソースに必要です。

  • name は、Search サービス内のデータ ソースの一意の名前です。
  • type は "sharepoint" である必要があります。 この値は、大文字と小文字が区別されます。
  • credentials には、SharePoint エンドポイントと Azure AD アプリケーション (クライアント) ID を指定します。 SharePoint エンドポイントの例は、https://microsoft.sharepoint.com/teams/MySharePointSite です。 エンドポイントを取得するには、ご自分の SharePoint サイトのホーム ページに移動し、ブラウザーから URL をコピーします。
  • container には、インデックスを作成するドキュメント ライブラリを指定します。 コンテナーの作成の詳細については、このドキュメントの「インデックスを作成するドキュメントの制御」セクションを参照してください。

データ ソースを作成するには、プレビューの API バージョン 2020-06-30-Preview 以降を使用して、データ ソースの作成を呼び出します。

POST https://[service name].search.windows.net/datasources?api-version=2020-06-30-Preview
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sharepoint-datasource",
    "type" : "sharepoint",
    "credentials" : { "connectionString" : "[connection-string]" },
    "container" : { "name" : "defaultSiteLibrary", "query" : null }
}

接続文字列の形式

接続文字列の形式は、インデクサーが委任された API のアクセス許可を使用しているか、アプリケーション API のアクセス許可を使用しているかに基づいて変化します。

  • 委任された API のアクセス許可の接続文字列の形式

    SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];TenantId=[SharePoint site tenant id]

  • アプリケーション API のアクセス許可の接続文字列の形式

    SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]

注意

SharePoint サイトが検索サービスと同じテナント内にあり、システム割り当てマネージド ID が有効になっている場合は、TenantId を接続文字列に含める必要はありません。 SharePoint サイトが検索サービスとは異なるテナント内にある場合は、TenantId を含める必要があります。

手順 5: インデックスを作成する

インデックスでは、検索に使用する、ドキュメント内のフィールド、属性、およびその他の構成要素を指定します。

インデックスを作成するには、インデックスの作成を呼び出します。

POST https://[service name].search.windows.net/indexes?api-version=2020-06-30
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sharepoint-index",
    "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "metadata_spo_item_name", "type": "Edm.String", "key": false, "searchable": true, "filterable": false, "sortable": false, "facetable": false },
        { "name": "metadata_spo_item_path", "type": "Edm.String", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
        { "name": "metadata_spo_item_content_type", "type": "Edm.String", "key": false, "searchable": false, "filterable": true, "sortable": false, "facetable": true },
        { "name": "metadata_spo_item_last_modified", "type": "Edm.DateTimeOffset", "key": false, "searchable": false, "filterable": false, "sortable": true, "facetable": false },
        { "name": "metadata_spo_item_size", "type": "Edm.Int64", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
        { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
    ]
}

重要

SharePoint インデクサーによって設定されたインデックスのキー フィールドとして metadata_spo_site_library_item_id のみを使用できます。 キー フィールドがデータ ソースに存在しない場合、metadata_spo_site_library_item_id は自動的にキー フィールドにマップされます。

手順 6: インデクサーを作成する

インデクサーはデータ ソースをターゲットの検索インデックスに接続し、データ更新を自動化するスケジュールを提供します。 インデックスとデータ ソースを作成したら、インデクサーを作成できます。

このセクションでは、SharePoint サイトにアクセスできる組織の資格情報を使用してサインインするよう求められます。 可能であれば、新しい組織ユーザー アカウントを作成し、その新しいユーザーに、インデクサーに必要なアクセス許可を付与することをお勧めします。

インデクサーを作成するには、いくつかの手順があります。

  1. インデクサーの作成要求を送信します。

    POST https://[service name].search.windows.net/indexers?api-version=2020-06-30-Preview
    Content-Type: application/json
    api-key: [admin key]
    
    {
        "name" : "sharepoint-indexer",
        "dataSourceName" : "sharepoint-datasource",
        "targetIndexName" : "sharepoint-index",
        "parameters": {
        "batchSize": null,
        "maxFailedItems": null,
        "maxFailedItemsPerBatch": null,
        "base64EncodeKeys": null,
        "configuration": {
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpg",
            "dataToExtract": "contentAndMetadata"
          }
        },
        "schedule" : { },
        "fieldMappings" : [
            { 
              "sourceFieldName" : "metadata_spo_site_library_item_id", 
              "targetFieldName" : "id", 
              "mappingFunction" : { 
                "name" : "base64Encode" 
              } 
          }
    }
    
  2. インデクサーを初めて作成するときに、失敗すると、次のエラーが表示されます。 エラー メッセージ内のリンク先にアクセスします。 10 分以内にリンク先にアクセスしないと、コードの有効期限が切れ、データ ソースを再作成する必要があります。

    {
        "error": {
            "code": "",
            "message": "Error with data source: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code <CODE> to authenticate.  Please adjust your data source definition in order to proceed."
        }
    }
    
  3. エラー メッセージに記載されたコードを指定します。

    Enter device code

  4. SharePoint インデクサーは、サインインしているユーザーとして SharePoint コンテンツにアクセスします。 この手順でログインするユーザーは、そのサインインしているユーザーになります。 そのため、インデックスを作成するドキュメント ライブラリ内のドキュメントにアクセスできないユーザー アカウントを使用してログインした場合、インデクサーはそのドキュメントにアクセスできません。

    可能であれば、新しいユーザー アカウントを作成し、その新しいユーザーに、インデクサーに必要なアクセス許可を付与することをお勧めします。

  5. 要求されているアクセス許可を承認します。

    Approve API permissions

  6. インデクサー作成要求を再送信します。 今度は要求が成功するはずです。

    POST https://[service name].search.windows.net/indexers?api-version=2020-06-30-Preview
    Content-Type: application/json
    api-key: [admin key]
    
    {
        "name" : "sharepoint-indexer",
        "dataSourceName" : "sharepoint-datasource",
        "targetIndexName" : "sharepoint-index",
        "parameters": {
        "batchSize": null,
        "maxFailedItems": null,
        "maxFailedItemsPerBatch": null,
        "base64EncodeKeys": null,
        "configuration:" {
            "indexedFileNameExtensions" : null,
            "excludedFileNameExtensions" : null,
            "dataToExtract": "contentAndMetadata"
          }
        },
        "schedule" : { },
        "fieldMappings" : [
            { 
              "sourceFieldName" : "metadata_spo_site_library_item_id", 
              "targetFieldName" : "id", 
              "mappingFunction" : { 
                "name" : "base64Encode" 
              } 
          }
    }
    

注意

Azure AD アプリケーションに管理者の承認が必要であり、ログイン前に承認されていない場合は、次の画面が表示されることがあります。 続行するには、管理者の承認が必要です。 Admin approval required

手順 7: インデクサーの状態を確認する

インデクサーが作成された後、インデクサー状態の取得を呼び出すことができます。

GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2020-06-30-Preview
Content-Type: application/json
api-key: [admin key]

データ ソースの更新

データ ソース オブジェクトに対する更新がない場合、ユーザーの介入なしにスケジュールに基づいてインデクサーを実行できます。 ただし、Azure Cognitive Search データ ソース オブジェクトが更新された場合、インデクサーを実行するには、必ずもう一度サインインする必要があります。 たとえば、データ ソース クエリを変更した場合は、https://microsoft.com/devicelogin と新しいコードを使用してもう一度サインインします。

データ ソースが更新されたら、次の手順に従います。

  1. インデクサーの実行を呼び出し、インデクサーの実行を手動で開始します。

    POST https://[service name].search.windows.net/indexers/sharepoint-indexer/run?api-version=2020-06-30-Preview  
    Content-Type: application/json
    api-key: [admin key]
    
  2. インデクサーの状態を確認します。 前回のインデクサーの実行で、https://microsoft.com/devicelogin にアクセスするよう伝えるエラーが発生した場合は、そのページにアクセスし、新しいコードを指定します。

    GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2020-06-30-Preview
    Content-Type: application/json
    api-key: [admin key]
    
  3. ログイン。

  4. もう一度手動でインデクサーを実行し、インデクサーの状態を確認します。 今度はインデクサーの実行が正常に開始されるはずです。

ドキュメント メタデータのインデックス作成

ドキュメント メタデータのインデックスを作成するようにインデクサーを設定している場合 ("dataToExtract": "contentAndMetadata") は、次のメタデータを使用して、インデックスを作成できます。

識別子 Type 説明
metadata_spo_site_library_item_id Edm.String サイトのドキュメント ライブラリ内にある項目を一意に識別する、サイト ID、ライブラリ ID、および項目 ID を組み合わせたキー。
metadata_spo_site_id Edm.String SharePoint サイトの ID。
metadata_spo_library_id Edm.String ドキュメント ライブラリの ID。
metadata_spo_item_id Edm.String ライブラリ内にある (ドキュメント) 項目の ID。
metadata_spo_item_last_modified Edm.DateTimeOffset 項目の最終変更日時 (UTC)。
metadata_spo_item_name Edm.String 項目の名前。
metadata_spo_item_size Edm.Int64 項目のサイズ (バイト単位)。
metadata_spo_item_content_type Edm.String 項目のコンテンツ タイプ。
metadata_spo_item_extension Edm.String 項目の拡張子。
metadata_spo_item_weburi Edm.String 項目の URI。
metadata_spo_item_path Edm.String 親パスと項目名の組み合わせ。

SharePoint インデクサーでは、各ドキュメントの種類に固有のメタデータもサポートされています。 詳細については、Azure Cognitive Search で使用されるコンテンツ メタデータのプロパティに関するページを参照してください。

注意

カスタム メタデータのインデックスを作成するには、データ ソースのクエリ パラメーターに "additionalColumns" を指定する必要があります。

ファイルの種類で含めるか除外する

インデクサー定義の "parameters" セクションに包含と除外の条件を設定して、どのファイルのインデックスを作成するかを制御できます。

特定のファイル拡張子を含めるには、"indexedFileNameExtensions" をファイル拡張子 (先頭のドットを含む) のコンマ区切りリストに設定します。 特定のファイル拡張子を除外するには、"excludedFileNameExtensions" をスキップする拡張子に設定します。 同じファイル拡張子が両方のリストにある場合、それはインデックス作成から除外されます。

PUT /indexers/[indexer name]?api-version=2020-06-30
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

インデックスを作成するドキュメントの制御

1 つの SharePoint インデクサーで、1 つ以上のドキュメント ライブラリにあるコンテンツのインデックスを作成できます。 データ ソース定義の "container" パラメーターを使用して、インデックスの作成元になるサイトとドキュメント ライブラリを指定します。 データ ソースの "container" セクションには、"name" と "query" という 2 つのプロパティがあります。

名前

"name" プロパティは必須で、次の値のいずれかである必要があります。

説明
defaultSiteLibrary サイトの既定のドキュメント ライブラリにあるすべてのコンテンツのインデックスを作成します。
allSiteLibraries サイト内のすべてのドキュメント ライブラリにあるすべてのコンテンツのインデックスを作成します。 サブサイトにあるドキュメント ライブラリのインデックスは作成されません。 ただし、それらは "query" で指定できます。
useQuery "query" で定義されているコンテンツのインデックスのみを作成します。

クエリ

データ ソースの "query" パラメーターは、キーワードと値のペアで構成されます。 使用できるキーワードを以下に示します。 値は、サイトの URL またはドキュメント ライブラリの URL のいずれかです。

注意

特定のキーワードの値を取得するには、含めたり除外したりするドキュメント ライブラリに移動し、ブラウザーから URI をコピーすることをお勧めします。 これは、クエリのキーワードと共に使用する値を取得する最も簡単な方法です。

キーワード 値の説明と例
null null 値または空の場合は、コンテナー名に応じて、既定のドキュメント ライブラリまたはすべてのドキュメント ライブラリのいずれかのインデックスを作成します。

例:

"container" : { "name" : "defaultSiteLibrary", "query" : null }
includeLibrariesInSite 接続文字列に含まれる指定されたサイトで、すべてのライブラリにあるコンテンツのインデックスを作成します。 これらはご自分のサイトのサブサイトに限定されます。 値は、サイトまたはサブサイトの URI である必要があります。

例:

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/mysite" }
includeLibrary このライブラリにあるすべてのコンテンツのインデックスを作成します。 値は、ライブラリへの完全修飾パスであり、ブラウザーからコピーできます。

例 1 (完全修飾パス):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary" }

例 2 (ブラウザーからコピーした URI):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" }
excludeLibrary このライブラリにあるコンテンツのインデックスを作成しません。 値は、ライブラリへの完全修飾パスであり、ブラウザーからコピーできます。

例 1 (完全修飾パス):

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mysite.sharepoint.com/subsite1; excludeLibrary=https://mysite.sharepoint.com/subsite1/MyDocumentLibrary" }

例 2 (ブラウザーからコピーした URI):

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/teams/mysite; excludeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" }
additionalColumns ドキュメント ライブラリにある列にインデックスを作成します。 値は、インデックスを作成する対象の列名のコンマ区切りのリストです。 列名に含まれるセミコロンとコンマは、二重円記号を使用してエスケープします。

例 1 (additionalColumns=MyCustomColumn,MyCustomColumn2):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary;additionalColumns=MyCustomColumn,MyCustomColumn2" }

例 2 (二重円記号を使用したエスケープ文字):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx;additionalColumns=MyCustomColumnWith\\,,MyCustomColumnWith\\;" }

エラーの処理

既定では、SharePoint インデクサーは、サポートされていないコンテンツ タイプ (画像など) のドキュメントを検出するとすぐに停止します。 もちろん、excludedFileNameExtensions パラメーターを使用して特定のコンテンツの種類をスキップすることもできますが、 存在する可能性のあるすべてのコンテンツ タイプが事前にわからないままドキュメントのインデックスを作成する必要がある場合もあります。 サポートされていないコンテンツ タイプが検出されたときにインデックス作成を続行するには、failOnUnsupportedContentType 構成パラメーターを false に設定します。

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2020-06-30-Preview
Content-Type: application/json
api-key: [admin key]

{
    ... other parts of indexer definition
    "parameters" : { "configuration" : { "failOnUnsupportedContentType" : false } }
}

一部のドキュメントについては、Azure Cognitive Search でコンテンツ タイプを判別できないことや、他ではサポートされているコンテンツ タイプのドキュメントを処理できないことがあります。 この障害モードを無視するには、failOnUnprocessableDocument 構成パラメーターを false に設定します。

"parameters" : { "configuration" : { "failOnUnprocessableDocument" : false } }

Azure Cognitive Search では、インデックスを作成するドキュメントのサイズが制限されています。 これらの制限は、Azure Cognitive Search サービスの制限に関する記事で文書化されています。 サイズが大きいドキュメントは、既定ではエラーとして扱われます。 ただし、indexStorageMetadataOnlyForOversizedDocuments 構成パラメーターを true に設定した場合、サイズが大きいドキュメントのストレージ メタデータのインデックスも作成することができます。

"parameters" : { "configuration" : { "indexStorageMetadataOnlyForOversizedDocuments" : true } }

ドキュメントの解析中またはインデックスへのドキュメントの追加中、処理のどこかの時点でエラーが発生した場合に、インデックス作成を続行することもできます。 特定数のエラーを無視するには、構成パラメーター maxFailedItemsmaxFailedItemsPerBatch を望ましい値に設定します。 次に例を示します。

{
    ... other parts of indexer definition
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 10 }
}

関連項目