Share via


Azure AI Search のインデクサーの一般的なエラーと警告のトラブルシューティング

この記事では、Azure AI Search でインデックス作成中と AI の強化中に発生する可能性のある一般的なエラーと警告に関する情報と解決策を提供します。

エラー数が 'maxFailedItems' を超えると、インデックス作成は停止します。

インデクサーでこれらのエラーを無視する (および "失敗したドキュメント" をスキップする) 場合は、ここで説明する maxFailedItemsmaxFailedItemsPerBatch を更新することを検討してください。

Note

失敗した各ドキュメントとそのドキュメント キー (使用可能な場合) は、インデクサーの実行状態にエラーとして表示されます。 インデクサーにエラーが許容されるように設定している場合は、インデックス API を使用して、後でドキュメントを手動でアップロードできます。

この記事のエラー情報では、エラーを解決して、インデックス作成を続行できるようにする方法について説明します。

警告でインデックス作成は停止されませんが、予期しない結果になる可能性がある状態を示しています。 アクションを実行するかどうかは、データとシナリオによって変わります。

特定のインデクサー エラーはどこで確認できますか?

Azure portal でインデクサーの状態を確認し、エラーを特定するには、以下の手順に従います。

  1. Azure portal に移動し、AI 検索サービスを見つけます。
  2. AI 検索サービス内に入ったら、'インデクサー' タブをクリックします。
  3. インデクサーの一覧から、確認したい特定のインデクサーを指定します。
  4. '実行履歴' 列で、選択したインデクサーに関連付けられている '状態' ハイパーリンクをクリックします。
  5. エラーが発生した場合は、エラー メッセージにカーソルを合わせます。 画面の右側にペインが現れ、エラーに関する詳細情報が表示されます。

一時的なエラー

インデクサーの実行中には、さまざまな理由 (一時的なネットワーク通信の中断、プロセスの実行時間が長いことによるタイムアウト、特定のドキュメントの微妙な違いなど) から、一時的なエラーや警告が発生するのが一般的です。 しかし、これらのエラーは一時的なものであり、後続のインデクサーの実行では解決されるはずです。

これらのエラーを効果的に管理するには、たとえば 5 分ごとに実行するなど、インデクサーにスケジュールを設定することが推奨されます。 つまり、次の実行は最初の実行が完了してから 5 分後に開始され、最大ランタイム制限が遵守されます。 定期的にスケジュールされた実行は、一時的なエラーや警告を迅速に修正するのに役立ちます。

インデクサーの実行を複数回行ってもエラーが続く場合、それは一時的な問題ではない可能性があります。 そのような場合は、次の一覧を参照して、解決策を探してください。 インデックス作成のスケジュールは、インデクサーの制限ガイドに記載されている制限の範囲内に留まるように常に注意してください。

エラーのプロパティ

API バージョン 2019-05-06 以降では、項目レベルのインデクサーのエラーと警告は、原因と次の手順をより明確にするために構造化されています。 次のプロパティが含まれます。

プロパティ 説明
キー エラーまたは警告によって影響を受けるドキュメントのドキュメント ID。 https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf
名前 エラーまたは警告が発生した場所を示す操作名。 これは [category].[subcategory].[resourceType].[resourceName] という形式で生成されます。 DocumentExtraction.azureblob.myBlobContainerName Enrichment.WebApiSkill.mySkillName Projection.SearchIndex.OutputFieldMapping.myOutputFieldName Projection.SearchIndex.MergeOrUpload.myIndexName Projection.KnowledgeStore.Table.myTableName
メッセージ エラーまたは警告の概要。 Could not execute skill because the Web Api request failed.
詳細 カスタム スキルの実行に失敗した場合に返される WebApi 応答など、問題を診断するのに役立つ可能性のある具体的な情報。 link-cryptonyms-list - Error processing the request record : System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Linq.Enumerable.All[TSource](IEnumerable 1 source, Func 2 predicate) at Microsoft.CognitiveSearch.WebApiSkills.JfkWebApiSkills. ...rest of stack trace...
DocumentationLink 問題をデバッグして解決するための詳細情報が記載された関連ドキュメントへのリンク。 このリンクは、多くの場合、このページの以下のいずれかのセクションを指します。 https://go.microsoft.com/fwlink/?linkid=2106475

Error: Could not read document

インデクサーで、データ ソースからドキュメントを読み取ることができませんでした。 これは、次の理由で発生する可能性があります。

Reason 詳細/例 解決方法
異なるドキュメント間でフィールドの型が一致していません Type of value has a mismatch with column type. Couldn't store '{47.6,-122.1}' in authors column. Expected type is JArray. Error converting data type nvarchar to float. Conversion failed when converting the nvarchar value '12 months' to data type int. Arithmetic overflow error converting expression to data type int. 異なるドキュメント間で各フィールドの型が同じであることを確認します。 たとえば、最初のドキュメントの 'startTime' フィールドが DateTime で、2 つ目のドキュメントが文字列である場合、このエラーが発生します。
データ ソースの基となるサービスのエラー Azure Cosmos DB から: {"Errors":["Request rate is large"]} ストレージ インスタンスが正常に稼働していることを確認します。 スケーリングやパーティション分割の調整が必要な場合があります。
一時的な問題 A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host 予期しない接続の問題が発生することがあります。 後でインデクサーを使用してドキュメントをもう一度実行してください。

Error: Could not extract content or metadata from your document

BLOB データ ソースを使用するインデクサーで、ドキュメント (PDF ファイルなど) から内容やメタデータを抽出できませんでした。 これは、次の理由で発生する可能性があります。

Reason 詳細/例 解決方法
BLOB がサイズ制限を超えています Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. BLOB インデックス作成エラー
BLOB にサポートされていないコンテンツ タイプがあります Document has unsupported content type 'image/png' BLOB インデックス作成エラー
BLOB は暗号化されています Document could not be processed - it may be encrypted or password protected. BLOB の設定で BLOB をスキップできます。
一時的な問題 Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. 予期しない接続の問題が発生することがあります。 後でインデクサーを使用してドキュメントをもう一度実行してください。

Error: Could not parse document

インデクサーによってデータ ソースからドキュメントが読み取られましたが、ドキュメントの内容を指定されたフィールド マッピング スキーマに変換する際に問題が発生しました。 これは、次の理由で発生する可能性があります。

Reason 詳細/例 解決方法
ドキュメント キーがありません Document key cannot be missing or empty すべてのドキュメントに有効なドキュメント キーがあることを確認します。 ドキュメント キーは、インデックス定義の一部として "key" プロパティを設定することによって決定されます。 インデクサーは、"key" としてフラグが設定されているプロパティが特定のドキュメントに見つからない場合に、このエラーを生成します。
ドキュメント キーが無効です Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). すべてのドキュメントに有効なドキュメント キーがあることを確認します。 詳細については、 「Blob Storage のインデックス作成」を参照してください。 BLOB インデクサーを使っていて、ドキュメント キーが metadata_storage_path フィールドである場合は、インデクサー定義に、プレーン テキストのパスではなく、parametersnull に等しい base64Encode マッピング関数があることを確認します。
ドキュメント キーが無効です Document key cannot be longer than 1024 characters 検証要件を満たすようにドキュメント キーを変更します。
フィールドにフィールドのマッピングを適用できませんでした Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes インデクサーに定義されているフィールドのマッピングを再確認し、失敗したドキュメントの指定したフィールドのデータと比較します。 フィールドのマッピングまたはドキュメント データの変更が必要になる可能性があります。
フィールド値を読み取れませんでした Could not read the value of column 'fieldName' at index 'fieldIndex'. A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) 通常、データ ソースの基となるサービスで予期しない接続の問題が発生したことが原因で、これらのエラーが発生します。 後でインデクサーを使用してドキュメントをもう一度実行してください。

Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'

出力データの形式が、使っているマッピング関数に対して正しくないため、出力マッピングが失敗した可能性があります。 たとえば、バイナリ データに Base64Encode マッピング関数を適用すると、このエラーが発生します。 この問題を解決するには、マッピング関数を指定せずにインデクサーを再実行するか、マッピング関数が出力フィールドのデータ型と互換性があることを確認します。 詳細については、出力フィールド マッピングに関する記事を参照してください。

Error: Could not execute skill

インデクサーがスキルセットでスキルを実行できませんでした。

Reason 詳細/例 解決方法
一時的な接続に関する問題 一時的なエラーが発生しました。 後でもう一度試してみてください。 予期しない接続の問題が発生することがあります。 後でインデクサーを使用してドキュメントをもう一度実行してください。
潜在的な製品バグ 予期しないエラーが発生しました。 これはエラーのクラスが不明であり、製品バグがあることを示している場合があります。 サポートを受けるには、サポート チケットを提出してください。
スキルの実行中にエラーが発生しました (マージ スキルから) 1 つ以上のオフセット値が無効なため、解析できませんでした。 項目がテキストの末尾に挿入されました エラー メッセージに記載されている情報を参照して、問題を解決します。 この種のエラーを解決するには、対処が必要です。

Error: Could not execute skill because the Web API request failed

Web API の呼び出しに失敗したため、スキルを実行できませんでした。 このクラスのエラーは通常、カスタム スキルが使用されている場合に発生します。この場合は、カスタム コードをデバッグして問題を解決する必要があります。 これとは異なり、エラーが組み込みのスキルで発生した場合は、エラー メッセージを参照して問題を修正してください。

この問題をデバッグするときは、このスキルのスキルの入力警告に注意してください。 インデクサーから予期しない入力が渡されたために Web API エンドポイントが動作しなくなっている可能性があります。

Error: Could not execute skill because Web API skill response is invalid

Web API の呼び出しに無効な応答が返されたため、スキルを実行できませんでした。 このクラスのエラーは通常、カスタム スキルが使用されている場合に発生します。この場合は、カスタム コードをデバッグして問題を解決する必要があります。 これとは異なり、エラーが組み込みのスキルで発生した場合、サポートを受けるには、サポート チケットを提出してください。

Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'

マッピングしようとしているインデックス内フィールドとは異なるデータ型のフィールドがデータ ソースに含まれている場合、このエラーが発生します。 データ ソースのフィールドのデータ型をチェックし、インデックスのデータ型に対するマッピングが正しいことを確認してください。

Error: Skill did not execute within the time limit

このエラー メッセージが表示される可能性のあるケースは 2 つあり、それぞれ異なる方法で処理する必要があります。 このエラーが返されたスキルに応じて、以下の手順を実行してください。

組み込み Azure AI サービス スキル

言語検出、エンティティ認識、OCR など、組み込みの認知技術の多くは、Azure AI サービス API エンドポイントによって支えられています。 これらのエンドポイントに一時的な問題が発生すると、要求がタイムアウトすることがあります。一時的な問題の場合、待ってから再試行する以外の解決策はありません。 軽減策として、スケジュールに従って実行するようにインデクサーを設定することを検討してください。 スケジュールされたインデックス作成では、中断されたところから取得されます。 一時的な問題が解決した場合、インデックス作成と認知技術の処理は、次回のスケジュールされた実行で続行できる必要があります。

組み込みのコグニティブ スキルに関して同じドキュメントでこのエラーが引き続き表示される場合、この事態は想定外であるため、サポート チケットを提出して支援を受けてください。

カスタム スキル

カスタム スキルでタイムアウト エラーが発生した場合は、いくつかのことを試してみることができます。 最初に、カスタム スキルを見直し、無限ループに陥っていないこと、一貫して結果が返されていることを確認します。 結果が返されることを確認したら、実行時間を確認します。 カスタム スキル定義で timeout の値を明示的に設定しなかった場合、既定の timeout は 30 秒です。 30 秒では短すぎてスキルを実行できない場合は、カスタム スキル定義で timeout をより高い値に指定することをお勧めします。 タイムアウトが 90 秒に設定されているカスタム スキル定義の例を次に示します。

  {
        "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
        "uri": "<your custom skill uri>",
        "batchSize": 1,
        "timeout": "PT90S",
        "context": "/document",
        "inputs": [
          {
            "name": "input",
            "source": "/document/content"
          }
        ],
        "outputs": [
          {
            "name": "output",
            "targetName": "output"
          }
        ]
      }

timeout パラメーターに設定できる最大値は 230 秒です。 カスタム スキルを安定して 230 秒以内に実行できない場合は、1 回の実行で処理するドキュメントが少なくなるように、カスタム スキルの batchSize を減らすことを検討してください。 batchSize が既に 1 に設定されている場合は、230 秒未満で実行できるようにスキルを作成し直すか、1 つのカスタム スキルの実行時間が最大 230 秒になるように複数のカスタム スキルに分割する必要があります。 詳細については、カスタム スキルのドキュメントを参照してください。

Error: Could not 'MergeOrUpload' | 'Delete' document to the search index

ドキュメントは読み取りおよび処理されましたが、インデクサーによって検索インデックスに追加することができませんでした。 これは、次の理由で発生する可能性があります。

Reason 詳細/例 解決方法
フィールドに大きすぎる用語が含まれています ドキュメント内の用語が 32 KB の制限を超えています この制限を回避するには、フィールドがフィルター可能、ファセット可能、または並べ替え可能として構成されていないことを確実にします。
ドキュメントが大きすぎてインデックスを作成できません ドキュメントが API 要求の最大サイズを超えています 大規模なデータ セットのインデックスを作成する方法
ドキュメントでコレクションに含まれているオブジェクトが多すぎます ドキュメント内のコレクションが、すべての複合コレクション制限にわたる最大要素数を超えています。 The document with key '1000052' has '4303' objects in collections (JSON arrays). At most '3000' objects are allowed to be in collections across the entire document. Remove objects from collections and try indexing the document again. ドキュメント内の複合コレクションのサイズを制限より小さくし、記憶域の使用率が高くならないようにすることをお勧めします。
サービスにその他の負荷 (クエリやインデックスの作成など) がかかっているため、ターゲット インデックス (再試行後も保持されます) に接続できません。 インデックスを更新するための接続を確立できませんでした。 Search サービスの負荷が高くなっています。 検索サービスをスケールアップする
Search サービスは、サービスの更新に対して修正プログラムが適用されているか、トポロジの再構成中です。 インデックスを更新するための接続を確立できませんでした。 Search サービスは現在ダウンしているか、Search サービスが移行中です。 SLA ドキュメントによる 99.9% の可用性を確保するために、少なくとも 3 つのレプリカでサービスを構成します
基になるコンピューティング/ネットワーク リソースでエラーが発生しました (まれ) インデックスを更新するための接続を確立できませんでした。 不明なエラーが発生しました。 インデクサーをスケジュールに従って実行し、失敗した状態から取得するように構成します。
ターゲット インデックスに対して行われたインデックス作成要求は、ネットワークの問題により、タイムアウト期間内に受信確認されませんでした。 検索インデックスへの接続を時間内に確立できませんでした。 インデクサーをスケジュールに従って実行し、失敗した状態から取得するように構成します。 また、このエラー状況が解決しない場合は、インデクサーのバッチ サイズを小さくしてみてください。

Error: Could not index document because some of the document's data was not valid

ドキュメントはインデクサーによって読み取られ、処理されましたが、インデックス フィールドの構成とインデクサーによって抽出および処理されたデータが一致していないため、検索インデックスに追加できませんでした。 これは、次の理由で発生する可能性があります。

Reason 詳細/例
インデクサーによって抽出された 1 つ以上のフィールドのデータ型が、対応する対象のインデックス フィールドのデータ モデルと互換性がありません。 The data field '_data_' in the document with key '888' has an invalid value 'of type 'Edm.String''. The expected type was 'Collection(Edm.String)'.
文字列値から JSON エンティティを抽出できませんでした。 Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON object. Error:'After parsing a value an unexpected character was encountered: ''. Path '_path_', line 1, position 3162.'
文字列値から JSON エンティティのコレクションを抽出できませんでした。 Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON array. Error:'After parsing a value an unexpected character was encountered: ''. Path '[0]', line 1, position 27.'
ソース ドキュメントで不明な型が検出されました。 Unknown type '_unknown_' cannot be indexed
ソース ドキュメントで、地理ポイントに互換性のない表記が使用されました。 WKT POINT string literals are not supported. Use GeoJson point literals instead

これらのすべてのケースで、インデックス スキーマが正しく作成され、インデクサー フィールド マッピングが適切に設定されていることを確認するには、サポートされているデータ型およびインデクサーのデータ型マップに関する記事を参照してください。 エラー メッセージには、不一致の原因を突き止めるのに役立つ詳細が含まれます。

Error: Integrated change tracking policy cannot be used because table has a composite primary key

これは、SQL テーブルに適用されます。通常、これは、キーが複合キーとして定義されている場合、またはテーブルで一意のクラスター化インデックスが定義されている場合 (Azure Search インデックスではなく SQL インデックスの場合と同様) に発生します。 主な理由は、一意のクラスター化インデックスで、キー属性が複合主キーになるように変更されるためです。 この場合、SQL テーブルに一意のクラスター化インデックスが含まれていないこと、またはキー フィールドが、重複したキーが含まれていないことが保証されているフィールドにマップされていることを確認してください。

Error: Could not process document within indexer max run time

このエラーは、許可された実行時間内にインデクサーがデータ ソースからの 1 つのドキュメントの処理を完了できない場合に発生します。 スキルセットが使用されていると、最大実行時間は短くなります。 このエラーが発生したとき、maxFailedItems が 0 以外の値に設定されていると、インデクサーは将来の実行時にドキュメントをバイパスして、インデックス作成を継続できるようにします。 ドキュメントをスキップする余裕がない場合、またはこのエラーが常に表示される場合は、1 回のインデクサー実行内で部分的にでも処理を進められるよう、ドキュメントを小さなドキュメントに分割することを検討してください。

Error: Could not project document

このエラーは、インデクサーがデータのナレッジ ストアへの投影を試みていて、その試行で失敗があった場合に発生します。 この失敗は、一貫性があり修正可能な場合もあれば、プロジェクション出力シンクの一時的な失敗で、解決するには待機して再試行することが必要な場合もあります。 既知の障害状態と考えられる解決策のセットを次に示します。

Reason 詳細/例 解決方法
コンテナー 'containerName' 内のプロジェクション BLOB 'blobUri' を更新できませんでした 指定されたコンテナーが存在しません。 インデクサーは、指定されたコンテナーが既に作成されているかどうかを確認し、必要に応じて作成します。ただし、このチェックは、インデクサーの実行ごとに 1 回だけ実行されます。 このエラーは、この手順の後に、何らかによってコンテナーが削除されたことを意味します。 このエラーを解決するには、ストレージ アカウント情報をそのままにして、インデクサーが完了するのを待ってから再実行します。
コンテナー 'containerName' 内のプロジェクション BLOB 'blobUri' を更新できませんでした データをトランスポート接続に書き込めません: リモート ホストによって、既存の接続は強制的に切断されました。 これは、Azure Storage の一時的な失敗であると予想されるため、インデクサーを再実行して解決する必要があります。 このエラーが常に発生する場合は、さらに調査できるように、サポート チケットを提出してください。
テーブル 'tableName' 内の行 'projectionRow' を更新できませんでした サーバーがビジーです。 これは、Azure Storage の一時的な失敗であると予想されるため、インデクサーを再実行して解決する必要があります。 このエラーが常に発生する場合は、さらに調査できるように、サポート チケットを提出してください。

Error: The cognitive service for skill '<skill-name>' has been throttled

Azure AI サービスの呼び出しが抑えられたため、スキルの実行に失敗しました。 通常、このクラスの失敗は、並列で実行されているスキルが多すぎる場合に発生します。 Microsoft.Search.Documents クライアント ライブラリを使ってインデクサーを実行している場合、SearchIndexingBufferedSender を使って、失敗したステップを自動的に再試行できます。 それ以外の場合は、インデクサーをリセットして再実行できます。

Error: Expected IndexAction metadata

"予期される IndexAction メタデータ" エラーは、インデクサーが実行する必要があるアクションを特定するためにドキュメントを読み取ろうとしたときに、ドキュメント上に対応するメタデータが見つからなかったことを意味します。 通常、このエラーは、インデクサーをリセットせずにインデクサーで注釈キャッシュが追加または削除された場合に発生します。 これに対処するには、インデクサーをリセットして再実行する必要があります。

Warning: Skill input was invalid

スキルが入力されませんでした。型が間違っているか、それ以外の理由で無効です。 次の情報が表示される可能性があります。

  • Could not execute skill

  • Skill executed but may have unexpected results

コグニティブ スキルには、必須の入力と省略可能な入力があります。 たとえば、キー フレーズ抽出スキルには、必須の入力が 2 つ (textlanguageCode) あり、省略可能な入力はありません。 カスタム スキルの入力はすべて省略可能な入力と見なされます。

必要な入力がない場合や入力の型が間違っていたりした場合、スキルはスキップされ、警告が生成されます。 スキップされたスキルは出力を生成しません。 スキップされたスキルの出力がダウンストリーム スキルで使用されるものであった場合、また別の警告が発生することがあります。

省略可能な入力が空でもスキルは実行されますが、その不足している入力に起因して予想外の出力が生成されることがあります。

どちらの場合も、この警告はデータの形状に起因したものです。 たとえば、フィールド firstNamemiddleNamelastName を持つ人に関する情報がドキュメントに含まれる場合、一部のドキュメントには middleName の入力がないことがあります。 パイプラインのスキルに入力として middleName を渡す場合、このスキルの入力は、時折空になっていることになります。 データとシナリオを評価し、この警告の結果として措置が必要になるかどうかを決定する必要があります。

入力がないときの既定値を指定する場合は、条件付きスキルを使って既定値を生成し、条件付きスキルの出力をスキル入力として使用できます。

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == null" },
        { "name": "whenTrue", "source": "= 'en'" },
        { "name": "whenFalse", "source": "= $(/document/language)" }
    ],
    "outputs": [ { "name": "output", "targetName": "languageWithDefault" } ]
}
理由 詳細/例 解決方法
スキルの入力タイプが正しくありません。 "必須のスキルの入力が予期された型 String ではありませんでした。 Name: text, Source: /document/merged_content." "Required skill input wasn't of the expected format. 名前: text、ソース: /document/merged_content." "非配列を反復処理することはできません/document/normalized_images/0/imageCelebrities/0/detail/celebrities" "非配列/document/normalized_images/0/imageCelebrities/0/detail/celebrities0 を選択できません" 特定のスキルでは、入力が特定の型であることを想定しています。たとえばセンチメント スキルでは、text が文字列である必要があります。 入力に文字列以外の値が指定されている場合、そのスキルは実行されず、出力は生成されません。 データ セットの型が統一されていることを確認するか、カスタム Web API スキルを使用して入力を前処理します。 配列に対してスキルを反復する場合は、スキル コンテキストをチェックし、入力の正しい位置に * があることを確認します。 通常、コンテキストと入力ソースの両方が配列の * で終わる必要があります。
スキルの入力がありません Required skill input is missing. Name: text, Source: /document/merged_content Missing value /document/normalized_images/0/imageTags. Unable to select 0 in array /document/pages of length 0. この警告がすべてのドキュメントで発生する場合は、入力パスに入力ミスがある可能性があります。 プロパティ名の大文字と小文字を確認します。 パスの中に * が余分にないか、欠落していないか確認します。 データ ソースのドキュメントが必要な入力を提供していることを確認します。
スキル言語コードの入力が無効です スキルの入力 languageCode に次の言語コード X,Y,Z が含まれており、その少なくとも 1 つが無効です。 詳細については、以下を参照してください。

Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.

ダウンストリーム スキルの省略可能な languageCode の入力に渡された 1 つ以上の値がサポートされていません。 LanguageDetectionSkill の出力を後続のスキルに渡し、それらのダウンストリーム スキルでサポートされているよりも多くの言語で出力が構成されている場合に、これが発生する可能性があります。

また、LanguageDetectionSkill に無効な countryHint 入力が渡された場合にも、このような警告が表示されることがあることに注意してください。 そのような場合は、その入力のためにデータ ソースから使用しているフィールドに、有効な ISO 3166-1 alpha-2 の 2 文字の国番号が含まれていることを確認してください。 一部が有効で、一部が無効な場合は、次のガイダンスに従ってください。ただし、実際のユース ケースに合わせて、languageCodecountryHint に、defaultLanguageCodedefaultCountryHint に置き換えてください。

データ セットがすべて 1 つの言語であることがわかっている場合は、LanguageDetectionSkill および languageCode スキル入力を削除し、代わりにそのスキルに対して defaultLanguageCode スキル パラメーターを使用する必要があります (スキルに対してその言語がサポートされている場合)。

データ セットに複数の言語が含まれているため、LanguageDetectionSkilllanguageCode の入力が必要であることがわかっている場合は、ConditionalSkill を追加して、サポートされていない言語のテキストを除外してから、ダウンストリーム スキルにテキストを渡すことを検討してください。 EntityRecognitionSkill の場合の例を次に示します。

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == 'de' || $(/document/language) == 'en' || $(/document/language) == 'es' || $(/document/language) == 'fr' || $(/document/language) == 'it'" },
        { "name": "whenTrue", "source": "/document/content" },
        { "name": "whenFalse", "source": "= null" }
    ],
    "outputs": [ { "name": "output", "targetName": "supportedByEntityRecognitionSkill" } ]
}

このエラー メッセージが発生する可能性のある各スキルについて、現在サポートされている言語の参考資料を次に示します。

Warning: Skill input was truncated

コグニティブ スキルには、一度に分析できるテキストの長さの制限があります。 テキスト入力が制限を超えると、テキストはエンリッチされる前に切り詰められます。 スキルは実行されますが、すべてのデータに対して実行されるわけではありません。

次の LanguageDetectionSkill の例では、'text' 入力フィールドで入力が文字制限を超えている場合にこの警告がトリガーされることがあります。 入力制限については、スキルのリファレンス ドキュメントで確認できます。

 {
    "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
    "inputs": [
      {
        "name": "text",
        "source": "/document/text"
      }
    ],
    "outputs": [...]
  }

すべてのテキストが分析されるようにするには、スキルの分割を使用することを検討してください。

Warning: Web API skill response contains warnings

インデクサーはスキルセット内のスキルを実行しましたが、Web API 要求からの応答は、警告があることを示しています。 警告を確認して、データがどのように影響を受けているか、およびアクションが必要かどうかを理解します。

Warning: The current indexer configuration does not support incremental progress

この警告は Azure Cosmos DB データ ソースでのみ発生します。

インデックスの作成中に増分の進行状況を利用すると、一時的な障害や実行の制限時間によってインデクサーの実行が中断された場合、次の実行時に、最初からコレクション全体のインデックスを再作成するのではなく、中断したところからインデックスを作成することができます。 大規模なコレクションのインデックスを作成する場合、この機能は特に重要です。

完了していないインデックス作成ジョブを再開できるかどうかは、ドキュメントが _ts 列で並べ替えられているかに基づいています。 インデクサーは、タイムスタンプを使用して次にどのドキュメントを取得するかを決定します。 _ts 列が存在しない場合、またはインデクサーがカスタム クエリが並べ替えられているかどうかを判断できない場合は、インデクサーが最初に開始され、この警告が表示されます。

この動作をオーバーライドして増分の進行状況を有効にし、assumeOrderByHighWaterMarkColumn 構成プロパティを使ってこの警告を抑制することができます。

詳細については、「増分の進行状況とカスタム クエリ」を参照してください。

Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.

Table Storage サービス には、エンティティ プロパティ のサイズに制限があります。 文字列の長さは 32,000 文字以下になります。 文字列プロパティが 32,000 文字を超える行がプロジェクションされるとき、最初の 32,000 文字だけが保持されます。 この問題を回避するには、文字列プロパティが 32,000 文字を超える行のプロジェクションを回避します。

Warning: Truncated extracted text to X characters

インデクサーには、1 つのドキュメントから抽出できるテキストの量の制限があります。 この制限は、価格レベルによって異なります。Free レベルの場合は 32,000 文字、Basic の場合は 64,000 文字、Standard の場合は 400 万文字、Standard S2 の場合は 800 万文字、Standard S3 の場合は 1,600 万文字です。 切り詰められたテキストには、インデックスが付けられません。 この警告を回避するには、大量のテキストを含むドキュメントを複数の小さなドキュメントに分割してみてください。

詳細については、「インデクサー制限」を参照してください。

Warning: Could not map output field 'X' to search index

存在しないデータや null のデータを参照する出力フィールド マッピングがあると、ドキュメントごとに警告が発生し、結果は空のインデックス フィールドになります。 この問題を回避するには、出力フィールド マッピングのソース パスに誤りがないことを再確認するか、条件付きスキルを使用して既定値を設定します。 詳細については、出力フィールド マッピングに関する記事を参照してください。

Reason 詳細/例 解決方法
非配列で反復処理できない "非配列 /document/normalized_images/0/imageCelebrities/0/detail/celebrities で反復処理できません。" このエラーは、出力が配列でない場合に発生します。 出力が配列であると考えられる場合は、示されている出力ソース フィールドのパスにエラーがないかどうかを確認してください。 たとえば、ソース フィールド名で * が欠落または余分である可能性があります。 また、このスキルへの入力が null であるため、空の配列が生成される可能性もあります。 「スキルの入力が無効でした」セクションで同様の詳細を確認してください。
非配列で 0 を選択できない "非配列 /document/pages0 を選択できません。" これは、スキルの出力によって配列が生成されず、出力ソース フィールド名のパスに配列インデックスまたは * が含まれている場合に発生する可能性があります。 出力ソース フィールド名に指定されているパスと、指定されたフィールド名のフィールド値をもう一度確認してください。 「スキルの入力が無効でした」セクションで同様の詳細を確認してください。

Warning: The data change detection policy is configured to use key column 'X'

データ変更検出ポリシーには、変更検出に使用する列に関する特定の要件が与えられます。 そのような要件の 1 つは、ソース項目が変更されるたびにこの列が更新されるということです。 もう 1 つの要件は、この列の新しい値が前の値より大きくなるということです。 キー列ではこの要件が満たされません。更新のたびに変わるわけではないためです。 この問題を回避するには、変更検出ポリシーに別の列を選択します。

Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark

インデクサー解析モードでは、テキストを解析する前に、テキストのエンコード方法が認識される必要があります。 テキストをエンコードする方法として最も一般的なのは、UTF-16 と UTF-8 の 2 つです。 UTF-8 は可変長エンコーディングで、各文字は 1 バイトから 4 バイト長です。 UTF-16 は固定長エンコーディングで、各文字は 2 バイト長です。 UTF-16 には、big endianlittle endian という 2 種類のバリアントがあります。 テキストのエンコードは、テキストの前にある一連のバイトである byte order mark によって決定されます。

[エンコード] バイト オーダー マーク
UTF-16 ビッグ エンディアン 0xFE 0xFF
UTF-16 リトル エンディアン 0xFF 0xFE
UTF-8 0xEF 0xBB 0xBF

バイト オーダー マークが存在しない場合、テキストは UTF-8 としてエンコードされていると見なされます。

この警告を回避するには、この BLOB のテキストのエンコードが何であるか特定し、適切なバイト オーダー マークを追加します。

Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost

Lazy インデックス作成ポリシーを持つコレクションには、一貫性のあるクエリを実行できません。そのため、インデクサーにはデータがありません。 この警告を回避するには、インデックス作成ポリシーを Consistent に変更します。

Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.

この警告は、Azure AI サービスの言語サービスから渡されます。 場合によっては、たとえば長い文字列が単なる長い URL である場合などは、この警告は無視しても問題ありません。 単語が 64 文字を超えると、64 文字に切り捨てられるため、モデルの予測に影響を与える可能性があります。

Error: Cannot write more bytes to the buffer than the configured maximum buffer size

インデクサーにはドキュメント サイズの制限があります。 データ ソース内のドキュメントが、サービス レベルのドキュメントに記載されているように、サポートされているサイズ制限よりも小さいことを確認します。