Azure AI 搜索中的 OData
将查询发送到没有 $orderby 参数的Azure AI 搜索时,返回的结果将按相关性分数按降序排序。 即使在使用$orderby时,默认情况下仍将使用相关性评分来作为打破平分局面的标准。 但是,有时使用相关性评分作为初始排序条件,并使用其他一些条件作为决定因素是有用的。 本文中的示例演示如何使用 search.score 函数进行排序。
注意事项
相关性分数通过相关性排名算法进行计算,范围因所用算法而异。 有关详细信息,请参阅 Azure AI 搜索中的相关性和评分。
语法
search.score 中 的语法为 search.score()。 函数 search.score 不接受任何参数。 对于全文查询,你可以像在 asc 参数中使用任何其他子句一样,将其与 desc 或 排序顺序说明符结合使用。 它可以出现在排序条件列表中的任何位置。
示例
按降search.scorerating序对酒店进行排序,然后按给定坐标的距离按升序对酒店进行排序,以便两家具有相同相关性分数和评级的酒店之间首先列出最接近的酒店:
search.score() desc,rating desc,geo.distance(location, geography'POINT(-122.131577 47.678581)') asc
局限性
不能在search.score()中将用于纯向量查询或混合查询。 服务会拒绝这些请求,并出现 HTTP 400 InvalidRequestParameter 错误。 若要更正请求,请从search.score()中删除。