Azure AI 搜尋中的 moreLikeThis (預覽)
重要
此功能在補充使用規定下處於公開預覽狀態。 預覽 REST API 支援此功能。
moreLikeThis=[key]
是搜尋檔案 API 中的查詢參數,可尋找類似檔案索引鍵所指定檔的查詢參數。 使用 提出 moreLikeThis
搜尋要求時,會從描述該檔的指定檔中擷取搜尋字詞來產生查詢。 然後,產生的查詢會用來提出搜尋要求。 moreLikeThis
參數不能與搜尋參數 search=[string]
搭配使用。
根據預設,會考慮所有最上層可搜尋欄位的內容。 如果您想要改為指定特定欄位,您可以使用 searchFields
參數。
moreLikeThis
複雜型別不支持 參數,而且複雜型別的存在會影響您的查詢邏輯。 如果您的索引是複雜類型,您必須設定 searchFields
為逐一查看的最上層可搜尋欄位 moreLikeThis
。 例如,如果索引具有 類型的Edm.String
可搜尋 ,而且field2
這是具有可field1
搜尋子欄位的複雜型別,則必須將的值searchFields
設定為 field1
以排除 field2
。
範例
下列所有範例都使用快速入門中的旅館範例:在 Azure 入口網站 中建立搜尋索引。
簡單查詢
下列查詢會尋找其描述欄位最類似於參數所 moreLikeThis
指定原始檔的欄位的檔案:
GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2024-05-01-preview
在此範例中,要求會搜尋與 HotelId
29類似的旅館。
您也可以使用 HTTP POST 來叫 MoreLikeThis
用 ,而不是使用 HTTP GET:
POST /indexes/hotels-sample-index/docs/search?api-version=2024-05-01-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=2024-05-01-preview
選取欄位並限制結果
選取 $top
器可用來限制查詢中 MoreLikeThis
應該傳回的結果數量。 此外,也可以使用 來選取 $select
欄位。 在這裡,會選取前三名旅館及其標識符、名稱和評等:
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=2024-05-01-preview
下一步
您可以針對此練習使用任何 REST 用戶端。