Azure AI Search の moreLikeThis (プレビュー)

重要

この機能はパブリック プレビュー段階にあり、追加使用条件の下で提供されます。 この機能は、プレビュー REST API でサポートされます。

moreLikeThis=[key] は、ドキュメント キーで指定されたドキュメントに類似するドキュメントを検索するドキュメントの検索 API のクエリ パラメーターです。 moreLikeThis を指定して検索を要求すると、指定したドキュメントの内容を最も適切に説明する検索用語がドキュメントから抽出され、その用語を使用してクエリが生成されます。 生成されたクエリを使用して、検索要求が作成されます。 moreLikeThis パラメーターは、search=[string] 検索パラメーターと一緒に使用することはきません。

既定では、最上位のすべての検索可能フィールドの内容が考慮されます。 代わりに特定のフィールドを指定する場合は、searchFields パラメーターを使用します。

moreLikeThis パラメーターは複合型ではサポートされておらず、複合型の存在はクエリ ロジックに影響します。 インデックスが複合型の場合は、searchFields を、moreLikeThis が反復処理を行う最上位の検索可能フィールドに設定する必要があります。 たとえば、Edm.String 型の検索可能な field1 と、検索可能なサブフィールドを持つ複合型の field2 がインデックスにある場合は、searchFields の値を field1 に設定して、field2 を除外する必要があります。

以下のすべての例では、「クイック スタート: Azure portal で検索インデックスを作成する」のホテルのサンプルを使用します。

単純なクエリ

次のクエリは、説明フィールドの内容が moreLikeThis パラメーターに指定されたソース ドキュメントのフィールドに最も類似しているドキュメントを検索します。

GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2020-06-30-Preview

この例の要求では、HotelId 29 のホテルに類似したホテルを検索します。 HTTP GET を使用する代わりに、HTTP POST を使用して MoreLikeThis を呼び出すこともできます。

POST /indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
    {
      "moreLikeThis": "29",
      "searchFields": "Description"
    }

フィルターを適用します

MoreLikeThis は、$filter などの他の一般的なクエリ パラメーターと組み合わせることができます。 たとえば、クエリを使って、カテゴリが 'バジェット' で評価が 3.5 より高いホテルのみに制限できます。

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&api-version=2020-06-30-Preview

フィールドを選択して結果を制限する

$top セレクターを使うと、MoreLikeThis クエリで返される結果の数を制限できます。 また、$select を使ってフィールドを選択することもできます。 ここでは、上位 3 つのホテルが ID、名前、評価と共に選択されています。

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&$top=3&$select=HotelId,HotelName,Rating&api-version=2020-06-30-Preview

次のステップ

この演習では、任意の REST クライアントを使用できます。