Search Serviceのスキルセット内の#Microsoft.Azure.Search.CognitiveServicesByKeyでAPIタイプエラーが出る

yamasaki 20 評価のポイント
2025-10-23T00:46:17.55+00:00

Search ServiceでAIスキル(OCR)を利用したいです。

スキルセットにてComputer Visionリソースのキーを設定しても「Unexpected error validating provided resource. { "error": { "code": "InvalidApiType", "message": "Unsupported Api Type." } }」のエラーが発生します。

両リソースは同じサブスクリプション・同じリージョン(East US 2)、Standardプラン、APIの種類はComputerVisionです。

スキルセットJSONは下記の通りです。

{ "name": "my-skillset", "cognitiveServices": { "@odata.type": "#Microsoft.Azure.Search.CognitiveServicesByKey", "key": "xxxxxxxxxxxxxx" }, "skills": [ { "@odata.type": "#Microsoft.Skills.Vision.OcrSkill", "name": "ocr-skill", "description": "Extract text from images", "context": "/document/normalized_images/", "lineEnding": "Space", "defaultLanguageCode": "ja", "detectOrientation": true, "inputs": [ { "name": "image", "source": "/document/normalized_images/" } ], "outputs": [ { "name": "text", "targetName": "ocr_text" } ] } ] }

エラーが解消せず、OCRが正常に動作しない状況です。

どのような原因が考えられるか、また回避策があればご教示ください。

Azure AI 検索
Azure AI 検索

情報を強化する人工知能機能が組み込まれた Azure の検索サービスで、関連するコンテンツの特定と探索を大規模に支援します。


質問作成者が受け入れた回答
Anonymous
2025-10-30T06:33:20.17+00:00

こんにちは yamasaki,

Azure AI Services(マルチサービス)リソースを作成したことで、最初のスキルセットエラーが解消されたとのこと、良いニュースですね。正しい方向に進んでいます。

デバッグセッションの内容から判断すると、現在は新たに 2 つの別々の問題が発生しているようです。それぞれ順番に解決していきましょう。

問題 1:インデクサーの警告(主な問題)

インデクサーの警告が最も重要な手がかりです:

Could not map output field 'ocr_text' to search index. ... Missing or empty value '/document/ocr_text'

このエラーは、スキルセットが正常に動作し、ocr_text の出力を生成していることを意味します。 しかし、インデクサーがそのテキストを検索インデックスに格納しようとした際に、格納先の ocr_text フィールドが見つからない状態になっています。

outputFieldMappings でソース(/document/ocr_text)からターゲット(ocr_text)へのマッピングを正しく設定していますが、ターゲット側のフィールド ocr_text が検索インデックスのスキーマに存在していません。

解決方法: インデクサーやスキルセットではなく、検索インデックスの定義を編集し、ocr_text フィールドを fields コレクションに追加してください。

検索インデックスの fields 配列に、次の JSON を追加します:

{
  "name": "ocr_text",
  "type": "Edm.String",
  "searchable": true,
  "filterable": true,
  "sortable": false,
  "facetable": false,
  "analyzer": "ja.lucene"
}

注意: スキルセットが日本語テキストを抽出するように設定されている("defaultLanguageCode": "ja")ため、ja.lucene アナライザーの使用をおすすめします。これにより、より精度の高い検索結果が得られます。

このフィールドを検索インデックスに追加した後、インデクサーをリセットして再実行してください。警告は消え、ocr_text フィールドにデータが正しく入力されるはずです。


問題 2:デバッグセッションエラー

こちらは「デバッグセッション」ツール自体の設定に関する別の問題です。 エラー「Debug session must have a valid 'StorageConnectionString'」は、デバッグセッションツールがテスト用ドキュメントを取得するための Blob Storage への接続情報を認識できていないことを意味します。

この設定はデータソース定義から取得されます。 エラーの原因は、データソースに保存されている接続文字列が 無効、不完全、または期限切れ(SAS トークンの場合) であることを示しています。

次の手順をお試しください:

  1. Azure AI Search サービスで [Data Sources](データソース) タブを開きます。
  2. インデクサーで使用しているデータソースをクリックします。
  3. Azure Blob Storage アカウントの 接続文字列(Connection String) を再入力します。  完全で有効な接続文字列(例:DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...)であることを確認してください。
  4. データソースを保存します。

有効な接続文字列でデータソースを更新すると、デバッグセッションツールが正しく接続して実行できるようになります。また、先に問題1を修正することをおすすめします。 検索インデックスに ocr_text フィールドを追加することで、OCR データが表示されない主な問題は解消される可能性が高いです。

問題が引き続き発生する場合は、お知らせください。
英語から日本語への翻訳にあたり、誤りがありましたらお詫び申し上げます。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 古い順

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "推奨" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。