Azure AI 検索 でクエリを実行する

Azure AI 検索は、Azure ポータルREST APIおよびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。

Azure AI 検索 では、フリーフォーム テキスト検索から高度に指定されたクエリ パターンやベクトル検索まで、さまざまなシナリオのクエリ コンストラクトがサポートされます。 すべてのクエリは、検索可能なコンテンツを格納する検索インデックスに対して実行されます。

クエリの種類

クエリ フォーム 検索可能なコンテンツ 説明
フルテキスト検索 トークン化された用語の逆インデックス。 フルテキスト クエリは、高速スキャン用に構造化された逆インデックスを反復処理します。このインデックスは、任意の数の検索ドキュメント内の任意のフィールドで一致する可能性があります。 テキストが分析され、フルテキスト検索用にトークン化されます。
ベクトル検索 生成された埋め込みのベクトル インデックス。 ベクトル クエリでは、検索インデックスのベクトル フィールドが反復処理されます。
ハイブリッド検索 上記のすべてが 1 つの検索インデックスに含まれています。 1 つのクエリ要求でテキスト検索とベクトル検索を組み合わせます。 テキスト検索は、検索可能なフィールド内のプレーンテキスト コンテンツに対して機能します。 フィルターは、フィルター可能なフィールドに適用されます。 ベクター検索はベクター フィールドで機能します。
エージェント検索 (プレビュー) 上記のすべてが 1 つの検索インデックスに含まれています。 これは、大規模な言語モデルをクエリ計画に活用する Azure AI 検索 の代替取得パスです。 応答はエージェントを使用するように設計されており、検索アプリ のクライアント コードではなくエージェントがユーザーに配信される応答を調整します。
その他 プレーンテキストと人間が判読できるコンテンツ。 ソース ドキュメントから逐語的に抽出された未加工のコンテンツは、地理空間検索、あいまい検索、フィールド検索などのフィルターおよびパターン マッチング クエリをサポートします。

この記事の残りの部分では、最後のカテゴリに焦点を当てます。プレーン テキストと人間が判読できるコンテンツで動作するクラシック クエリは、元のソースからそのまま抽出され、フィルターやその他の特殊なクエリ フォームに使用されます。 AI を使用していない従来の検索アプリケーションを作成する場合、このセクションでは、クライアント コードに実装できるクエリメソッドについて説明します。

オートコンプリートとクエリ候補

オートコンプリートや結果候補は、search の代替手段です。これは、部分文字列の入力 (各文字の後) に基づいて一連のクエリ要求を入力につれて検索する方式で行います。 autocompleteで説明しているように、suggestions パラメーターは一緒に使用することも、個別に使用することもできますが、search と一緒に使用することはできません。 完成した用語とクエリ候補はどちらもインデックスの内容から派生されます。 このエンジンは、インデックスに存在しない文字列や候補を返しません。 詳細については、「オートコンプリート (REST API)」と「検索候補 (REST API)」をご覧ください。

フィルターは、Azure AI 検索 を元に構築したアプリで広く使用されています。 アプリケーション ページでは、フィルターは多くの場合、ユーザー向けのフィルター処理のためにリンク ナビゲーション構造のファセットとして視覚化されます。 フィルターは、インデックス付きコンテンツのスライスを公開するために、内部的にも使用されます。 たとえば、製品カテゴリに対してフィルターを使用して検索ページを初期化したり、インデックスに英語とフランス語の両方のフィールドが含まれている場合は、言語を初期化したりすることができます。

次の表に示すように、特殊なクエリ フォームを呼び出すフィルターが必要な場合もあります。 指定されていない検索 (search=*) を含むフィルターを使用することも、用語、語句、演算子、およびパターンを含むクエリ文字列を含むフィルターを使用することもできます。

フィルター シナリオ 説明
範囲フィルター Azure AI 検索では、範囲クエリは filter パラメーターを使用して構築されます。 詳細と例については、「範囲フィルターの例」をご覧ください。
絞り込みナビゲーション ファセット ナビゲーション ツリーでは、ユーザーがファセットを選択できます。 フィルターでサポートされている場合、クリックするたびに検索結果が絞り込まれます。 ファセットによって指定された条件に一致しなくなったドキュメントを除外するフィルターによって、各ファセットがサポートされます。

フィルター式で使用されるテキストは、クエリ処理中には分析されません。 テキスト入力は、照合に成功するか失敗するかのどちらかになる逐語的な文字パターンで、大文字と小文字が区別されます。 フィルター式は OData 構文を使用して構築され、インデックス内のすべての "フィルター可能な" フィールドの filter パラメーターで渡されます。 詳細については、「Azure AI 検索 のフィルター」をご覧ください。

地理空間検索では、場所の緯度と経度の座標に基づき、“近くを検索” またはマップベースの検索体験を提供します。 Azure AI 検索 では、次の手順に従って地理空間検索を実装できます。

  1. Edm.GeographyPoint または Collection(Edm.GeographyPoint) 型のフィルター可能なフィールドを定義します。
  2. 受信ドキュメントに適切な座標が含まれていることを確認します。
  3. インデックス作成が完了したら、フィルターと地理空間関数を使用するクエリを作成します。

地理空間検索では、距離にキロメートルを使用します。 座標は (longitude, latitude) の形式で指定されます。

地理空間検索のフィルターの例を次に示します。 このフィルターでは、地理的なポイント (この例ではワシントン D.C.) から半径 300 キロ以内に座標を持つ他の Location フィールドを検索インデックスから見つけます。 結果にアドレス情報を返し、場所による自己ナビゲーションのためにオプションの facets 句を含めます。

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2026-04-01
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

詳細および例については、地理空間検索の例に関するページをご覧ください。

ドキュメントの検索

前述のクエリ フォームとは対照的に、このフォームでは、対応するインデックス検索またはスキャンを行わずに、ID による検索ドキュメントを 1 つ取得します。 1 つのドキュメントのみが要求され、返されます。 ユーザーが検索結果で項目を選択する場合、ドキュメントの取得と詳細ページでのフィールドの設定が典型的な応答になり、ドキュメントの検索はこれをサポートする操作になります。

高度な検索: あいまい、ワイルドカード、近接、正規表現

高度なクエリ フォームは、特定のクエリ動作をトリガーする完全な Lucene パーサーと演算子に依存します。

クエリの種類 使用法 例/詳細情報
フィールド検索 search パラメーター、queryType=full 1 つのフィールドを対象とする複合クエリ式を作成します。
フィールド検索の例
あいまい検索 search パラメーター、queryType=full 類似した構成または綴りの用語を照合します。
あいまい検索の例
近接検索 search パラメーター、queryType=full ドキュメント内で互いに近い用語を検索します。
近接検索の例
用語の重み付け search パラメーター、queryType=full ブーストされた用語が含まれているドキュメントを、含まない他のドキュメントと比較して上位にランク付けします。
用語強化の例
正規表現の検索 search パラメーター、queryType=full 正規表現の内容に基づいて一致させます。
正規表現の例
ワイルドカードまたはプレフィックスの検索 search *または?を持つパラメーターqueryType=full プレフィックス、複数文字 (*)、または 1文字 (?) に基づいてマッチングします。
ワイルドカード検索の例

次のステップ

クエリの実装について詳しく見るには、構文ごとに例を確認します。 フルテキスト検索を初めて使用する場合は、クエリ エンジンの機能の詳細を確認することもできます。