Azure AI 搜索中的 moreLikeThis(预览版)
重要
根据补充使用条款,此功能以公共预览版提供。 预览版 REST API 支持此功能。
moreLikeThis=[key]
是搜索文档 API 中的查询参数,用于查找与文档键所指定文档类似的文档。 当使用 moreLikeThis
生成搜索请求时,使用从最匹配的给定文档中提取的搜索项来生成查询。 然后使用生成的查询来生成搜索请求。 moreLikeThis
参数不能与搜索参数 search=[string]
一起使用。
默认情况下,会考虑所有顶级的可搜索字段的内容。 若要改为指定特定字段,则可使用 searchFields
参数。
复杂类型不支持 moreLikeThis
参数,复杂类型的存在会影响查询逻辑。 如果索引是复杂类型,则必须将 searchFields
设置为 moreLikeThis
循环访问的顶级可搜索字段。 例如,如果索引具有类型为 Edm.String
的可搜索 field1
,并且 field2
是具有可搜索子字段的复杂类型,则必须将 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
)组合。 例如,可以将查询限制为仅返回类别为“Budget”且评级高于 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
选择字段。 此处选择了前三个酒店及其 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=2024-05-01-preview
后续步骤
可对此练习使用任何 REST 客户端。