この記事では、Azure AI Search でのインデックス作成と AI エンリッチメント中に発生する可能性がある一般的なエラーと警告に関する情報と解決策について説明します。
エラー数が 'maxFailedItems' を超えると、インデックス作成が停止します。
インデクサーでこれらのエラーを無視する (および "失敗したドキュメント" をスキップする) 場合は、ここで説明するようにmaxFailedItems
とmaxFailedItemsPerBatch
を更新することを検討してください。
注
失敗した各ドキュメントとそのドキュメント キー (使用可能な場合) は、インデクサーの実行状態にエラーとして表示されます。 インデクサーがエラーを許容するように設定している場合は、インデックス API を使用して後でドキュメントを手動でアップロードできます。
この記事のエラー情報は、エラーの解決に役立ち、インデックス作成を続行できます。
警告はインデックス作成を停止しませんが、予期しない結果になる可能性のある条件を示します。 アクションを実行するかどうかは、データとシナリオによって異なります。
特定のインデクサー エラーはどこにありますか?
Azure portal でインデクサーの状態を確認し、エラーを特定するには、次の手順に従います。
Azure portal にサインインし、ご利用の検索サービスを探します。
左側で、[Search Management]\(検索管理\)>Indexers を展開し、インデクサーを選択します。
[ 実行履歴] で、状態を選択します。 成功を含むすべての状態には、実行に関する詳細が表示されます。
エラーが発生した場合は、エラー メッセージにカーソルを合わせます。 画面の右側にウィンドウが表示され、エラーに関する詳細情報が表示されます。
一時的なエラー
一時的なネットワーク通信の中断、実行時間の長いプロセスからのタイムアウト、特定のドキュメントの微妙な違いなど、さまざまな理由から、インデクサーの実行中に一時的なエラーや警告が発生するのが一般的です。 ただし、これらのエラーは一時的なものであり、後続のインデクサーの実行で解決する必要があります。
これらのエラーを効果的に管理するには、 たとえば、インデクサーをスケジュールに従って 5 分ごとに実行することをお勧めします。次の実行は、サービスの 最大ランタイム制限 に従って、最初の実行が完了してから 5 分後に開始されます。 定期的にスケジュールされた実行は、一時的なエラーや警告を修正するのに役立ちます。
複数のインデクサー実行でエラーが解決しない場合は、一時的な問題ではない可能性があります。 このような場合は、次の一覧を参照して、考えられる解決策を確認してください。
エラーのプロパティ
プロパティ | 説明 | 例 |
---|---|---|
鍵 | エラーまたは警告の影響を受けたドキュメントの ID。 | Azure Storage の例。既定の 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
インデクサーがデータ ソースからドキュメントを読み取れませんでした。 これは、次の理由で発生する可能性があります。
理由 | 詳細/例 | 解決策 |
---|---|---|
異なるドキュメント間で一貫性のないフィールドの種類 | 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 ファイルなど) からコンテンツまたはメタデータを抽出できませんでした。 これは、次の理由で発生する可能性があります。
理由 | 詳細/例 | 解決策 |
---|---|---|
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 を 設定でスキップできます。 |
一時的な問題 | Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. |
予期しない接続の問題が発生することがあります。 後でインデクサーを使用してドキュメントを実行してみてください。 |
Error: Could not parse document
インデクサーはデータ ソースからドキュメントを読み取りますが、ドキュメントの内容を指定されたフィールド マッピング スキーマに変換する際に問題が発生しました。 これは、次の理由で発生する可能性があります。
理由 | 詳細/例 | 解決策 |
---|---|---|
ドキュメント キーがありません | 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 フィールドである場合は、インデクサー定義に、プレーン テキストのパスではなく、parameters null と等しい 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
インデクサーはスキルセットでスキルを実行できませんでした。
理由 | 詳細/例 | 解決策 |
---|---|---|
一時的な接続の問題 | 一時的なエラーが発生しました。 後でもう一度試してみてください。 | 予期しない接続の問題が発生することがあります。 後でインデクサーを使用してドキュメントを実行してみてください。 |
潜在的な製品のバグ | 予期しないエラーが発生しました。 | これは、不明なクラスの障害を示し、製品のバグを示すことができます。 サポート チケットを提出してサポートを受けます。 |
実行中にスキルでエラーが発生しました | (マージ スキルから)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
ドキュメントが読み取られ、処理されましたが、インデクサーが検索インデックスに追加できませんでした。 これは、次の理由で発生する可能性があります。
理由 | 詳細/例 | 解決策 |
---|---|---|
フィールドに大きすぎる用語が含まれている | 文書内の用語が 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 サービスが移行中です。 | SLA ドキュメントごとに 99.9% 可用性を確保するために、少なくとも 3 つのレプリカを使用してサービスを構成する |
基になるコンピューティング/ネットワーク リソースのエラー (まれ) | インデックスを更新するための接続を確立できませんでした。 不明なエラーが発生しました。 | 失敗した状態から取得するように スケジュールに従って実行 するようにインデクサーを構成します。 |
ネットワークの問題により、ターゲット インデックスに対して行われたインデックス作成要求がタイムアウト期間内に確認されませんでした。 | 検索インデックスへの接続をタイムリーに確立できませんでした。 | 失敗した状態から取得するように スケジュールに従って実行 するようにインデクサーを構成します。 さらに、このエラー状態が続く場合は、インデクサー のバッチ サイズ を小さくしてみてください。 |
Error: Could not index document because some of the document's data was not valid
ドキュメントはインデクサーによって読み取られ、処理されましたが、インデックス フィールドの構成と、インデクサーによって抽出および処理されたデータの構成が一致しないため、検索インデックスに追加できませんでした。 これは、次の理由で発生する可能性があります。
理由 | 詳細/例 |
---|---|
インデクサーによって抽出された 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
このエラーは、インデクサーが ナレッジ ストアにデータを投影 しようとしたときに、試行でエラーが発生した場合に発生します。 このエラーは一貫性があり、修正可能な場合もあれば、プロジェクション出力シンクの一時的な障害である可能性があり、解決するには待機して再試行する必要があります。 既知のエラー状態と考えられる解決策のセットを次に示します。
理由 | 詳細/例 | 解決策 |
---|---|---|
コンテナー内のプロジェクション BLOB 'blobUri' を更新できませんでした 'containerName' |
指定されたコンテナーが存在しません。 | インデクサーは、指定されたコンテナーが以前に作成されているかどうかを確認し、必要に応じて作成しますが、このチェックはインデクサーの実行ごとに 1 回だけ実行されます。 このエラーは、この手順の後にコンテナーが削除されたことを意味します。 このエラーを解決するには、ストレージ アカウント情報をそのままにして、インデクサーが完了するのを待ってから、インデクサーを再実行してください。 |
コンテナー内のプロジェクション BLOB 'blobUri' を更新できませんでした 'containerName' |
トランスポート接続にデータを書き込むことができません:既存の接続がリモート ホストによって強制的に閉じられました。 | これは Azure Storage での一時的な障害と予想されるため、インデクサーを再実行して解決する必要があります。 このエラーが一貫して発生する場合は、さらに調査できるように サポート チケット を提出してください。 |
テーブル内の行 'projectionRow' を更新できませんでした 'tableName' |
サーバーがビジーです。 | これは 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
コグニティブ スキルには、必要な入力とオプションの入力があります。 たとえば、キー フレーズ抽出スキルには、languageCode
text
必要な 2 つの入力があり、省略可能な入力はありません。 カスタム スキル入力はすべて省略可能な入力と見なされます。
必要な入力がない場合、または入力が適切な型でない場合、スキルはスキップされ、警告が生成されます。 スキップされたスキルは出力を生成しません。 スキップされたスキルの出力をダウンストリームスキルが使用する場合、他の警告が生成される可能性があります。
省略可能な入力がない場合、スキルは引き続き実行されますが、入力がないために予期しない出力が生成される可能性があります。
どちらの場合も、この警告はデータの形状が原因です。 たとえば、 firstName
、 middleName
、および lastName
のフィールドを持つユーザーに関する情報を含むドキュメントがある場合、 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 ではありません。 名前: text 、ソース: /document/merged_content 。"必要なスキル入力が想定された形式ではありませんでした。 名前: text 、ソース: /document/merged_content 。"配列以外の/document/normalized_images/0/imageCelebrities/0/detail/celebrities を反復処理できません。""配列以外の/document/normalized_images/0/imageCelebrities/0/detail/celebrities で0 を選択できません" |
特定のスキルでは、特定の種類の入力が想定されます。たとえば、 センチメント スキル では、 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 の出力を後続のスキルに渡し、出力がそれらのダウンストリーム スキルでサポートされている言語よりも多くの言語で構成されている場合に発生する可能性があります。
無効な countryHint
入力が LanguageDetectionSkill に渡された場合は、次のような警告を受け取ることもできます。 その場合は、その入力にデータ ソースから使用しているフィールドに、有効な ISO 3166-1 alpha-2 の 2 文字の国コードが含まれていることを検証します。 一部が有効で無効な場合は、次のガイダンスに進みますが、ユース ケースに合わせて languageCode
を countryHint
に置き換え、 defaultLanguageCode
を defaultCountryHint
に置き換えます。
データ セットがすべて 1 つの言語であることがわかっている場合は、 LanguageDetectionSkill と languageCode
スキルの入力を削除し、代わりにそのスキルの defaultLanguageCode
スキル パラメーターを使用する必要があります(そのスキルの言語がサポートされていると仮定します)。
データ セットに複数の言語が含まれていることがわかっているため、 LanguageDetectionSkill と languageCode
入力が必要な場合は、ダウンストリーム スキルにテキストを渡す前に、サポートされていない言語でテキストを除外するために 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" } ]
}
このエラー メッセージを生成できるスキルごとに、現在サポートされている言語のリファレンスをいくつか次に示します。
- EntityRecognitionSkill でサポートされている言語
- EntityLinkingSkill でサポートされている言語
- KeyPhraseExtractionSkill でサポートされている言語
- LanguageDetectionSkill でサポートされている言語
- PIIDetectionSkill でサポートされている言語
- SentimentSkill でサポートされている言語
- Translator でサポートされている言語
- Text SplitSkill でサポートされている言語:
da, de, en, es, fi, fr, it, ko, pt
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 データを参照する出力フィールド マッピングでは、ドキュメントごとに警告が生成され、空のインデックス フィールドが生成されます。 この問題を回避するには、入力ミスの可能性がないか出力フィールド マッピングのソース パスを再確認するか、 条件付きスキルを使用して既定値を設定します。 詳細については 、出力フィールドのマッピング を参照してください。
理由 | 詳細/例 | 解決策 |
---|---|---|
非配列を反復処理できない | "配列以外の /document/normalized_images/0/imageCelebrities/0/detail/celebrities を反復処理できません。" |
このエラーは、出力が配列でない場合に発生します。 出力が配列である必要があると思われる場合は、指定された出力ソース フィールドのパスでエラーがないか確認します。 たとえば、ソースフィールド名で * が不足している、または余分に含まれている場合があります。 このスキルへの入力が null になり、空の配列になる可能性もあります。 「スキル入力が無効でした」セクションで同様の詳細を見つけます。 |
配列以外の 0 を選択できない |
"配列以外の/document/pages で0 を選択できません。" |
これは、スキル出力が配列を生成せず、出力ソースフィールド名のパスに配列インデックスまたは * がある場合に発生する可能性があります。 出力ソース フィールド名に指定されているパスと、指定されたフィールド名のフィールド値を再確認します。 「スキル入力が無効でした」セクションで同様の詳細を見つけます。 |
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
インデクサー解析モードでは、テキストを解析する前にエンコード方法を把握しておく必要があります。 テキストをエンコードする最も一般的な 2 つの方法は、UTF-16 と UTF-8 です。 UTF-8 は可変長エンコードで、各文字の長さは 1 バイトから 4 バイトです。 UTF-16 は固定長エンコードで、各文字の長さは 2 バイトです。 UTF-16 には、 big endian
と little 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 インデックス作成ポリシーを持つコレクションを一貫して照会できないため、インデクサーにデータが不足しています。 この警告を回避するには、インデックス作成ポリシーを [整合性] に変更します。
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
インデクサーには ドキュメント サイズの制限があります。 データ ソース内のドキュメントが、サービス レベルに関して説明されているように、サポートされているサイズ制限よりも小さいことを確認します。
Error: Failed to compare value 'X' of type M to value 'Y' of type N.
このエラーは、通常、 dataChangeDetectionPolicy
に使用されるソース列の種類がインデクサーで想定されているものと一致しない場合 (特に convertHighWaterMarkToRowVersion
が有効になっている場合)、Azure SQL インデクサーで発生します。
たとえば、変更検出に使用される列が datetime 型であるのに、convertHighWaterMarkToRowVersion が有効になっているためにインデクサーで rowversion 型が必要な場合、不一致によってエラーが発生します。
ソースの [High Water Mark] 列のデータ型を確認し、それに応じてインデクサーの構成を更新します。 検証と更新が完了したら、インデクサーをリセットして再実行し、列の値を処理します。