Azure AI 検索インデックス内のデータのクエリを実行する
インデックスとクエリの設計は密接に関連しています。 インデックスを作成した後、クエリを実行できます。 クエリでどのような答えが得られるかは、インデックスのスキーマによって決まります。これを理解しておくことが重要です。
Azure AI 検索クエリは HTTP または REST API 要求として送信でき、応答は JSON として返ってきます。 クエリでは、検索の対象とするフィールド、返されるフィールド、検索結果の整形方法、および結果のフィルター処理または並べ替えの方法を指定できます。 検索するフィールドが指定されていないクエリは、インデックス内のすべての検索可能フィールドに対して実行されます。
Azure AI 検索では、簡易構文と完全な Lucene 構文という 2 種類の構文がサポートされています。 単純な構文はすべての一般的なクエリ シナリオに対応しますが、完全な Lucene は高度なシナリオに役立ちます。
単純なクエリ要求
クエリ要求は、結果セットで返されるものの単語 (検索語句) とクエリ演算子 (単純または完全) のリストです。 検索クエリを構成するコンポーネントを見てみましょう。 この単純な検索例について考えてみます。
coffee (-"busy" + "wifi")
このクエリでは、coffee に関するコンテンツを検索しようとしており、busy を除外し、wifi を含めます。
クエリを構成要素に分割すると、クエリは、検索語 (coffee
) に加えて、2 つの逐語的語句 "busy"
と "wifi"
、および演算子 (-
、+
、( )
) で構成されています。 検索用語は、コンテンツ内の任意の順序または場所で、検索インデックスで一致させることができます。 2 つの語句は、指定内容とまったく同じものとのみ一致するため、wi-fi
は一致しません。 最後に、1 つのクエリに複数の演算子を含めることができます。 この例では、-
演算子によって、これらのフレーズを結果に含めては "ならない" ことが検索エンジンに指示されます。 かっこによって語句をまとめてグループ化し、その優先順位を設定します。
既定では、検索エンジンでクエリ内の語句のいずれかと一致させます。 coffee
のみを含むコンテンツは一致します。 この例では、-"busy"
を使用すると、"busy" と完全に一致する文字列がないすべてのコンテンツを含む検索結果が表示されます。
Azure AI 検索の簡易クエリ構文は、完全な Lucene クエリ構文のいくつかの複雑な機能を排除しており、これがクエリの既定の検索構文となっています。
クエリ構文の詳細については、このドキュメントを参照してください。