フィルター処理と並べ替えを適用する
検索ソリューションでは、普通、ユーザーがフィールド値に基づいてフィルター処理や並べ替えを行ってクエリ結果を絞り込むことができる必要があります。 Azure AI 検索は、検索クエリ API を通じてこれらの両方の機能をサポートしています。
結果のフィルター処理
クエリにフィルターを適用するには、2 つの方法があります。
- 単純な検索式にフィルター条件を含めます。
- $filter パラメーターとして OData フィルター式を指定し、完全な 構文検索式を提供します。
インデックス内の フィルター可能な フィールドにフィルターを適用できます。
たとえば、作成者フィールドの値が Reviewer であるロンドンのテキストを含むドキュメントを検索するとします。
この結果を得るには、次の 単純な検索 式を送信します。
search=London+author='Reviewer'
queryType=Simple
代わりに、このような完全なLucene 検索式を$filterパラメーターに使用して、OData フィルターを使用することもできます。
search=London
$filter=author eq 'Reviewer'
queryType=Full
ヒント
OData の $filter 式では大文字と小文字が区別されます。
ファセットを使用してフィルター処理する
ファセット は、結果セット内のフィールド値に基づいてフィルター条件をユーザーに表示する便利な方法です。 ユーザー インターフェイスにリンクやオプションとして表示できる不連続値の数が少ないフィールドの場合に最適に機能します。
ファセットを使用するには、最初のクエリで、選択可能な値を取得する facetable フィールドを指定する必要があります。 たとえば、次のパラメーターを使用して、 作成者 フィールドに使用可能なすべての値を返します。
search=*
facet=author
このクエリの結果には、ユーザーが選択するためにユーザー インターフェイスに表示できる不連続のファセット値のコレクションが含まれます。 その後、後続のクエリで、選択されたファセット値を使用して結果をフィルター処理できます。
search=*
$filter=author eq 'selected-facet-value-here'
結果を並べ替える
既定では、結果はクエリ プロセスによって割り当てられた関連性スコアに基づいて並べ替えられ、最も高いスコアリングの一致が最初に表示されます。 ただし、1 つ以上の並べ替え可能なフィールドと並べ替え順序 (asc または desc) を指定する OData orderby パラメーターを含めることで、この並べ替え順序をオーバーライドできます。
たとえば、結果を並べ替えて変更日時が最も新しいドキュメントが最初に表示されるようにするには、次のパラメーター値を使用します。
search=*
$orderby=last_modified desc
注
フィルターの使用の詳細については、「 Azure AI Search のフィルター」を参照してください。 並べ替えやヒット強調表示など、結果の操作については、「 Azure AI Search で検索結果を操作する方法」を参照してください。