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