根据此页面,Azure搜索结果的默认排序是Azure自己的分数(降序).但是,您可以提供$ orderby子句,其定义为:
用逗号分隔的表达式列表,用于对结果进行排序.每个表达式可以是字段名称,也可以是对geo.distance()函数的调用.
我想按Azure的@ search.score desc,MyFieldOne,MyFieldTwo排序.但是,我无法弄清楚如何引用@ search.score"字段".
我尝试过以下方法:
$orderby=search.score+desc,MyFieldOne,MyFieldTwo $orderby=@search.score+desc,MyFieldOne,MyFieldTwo $orderby=%40search.score+desc,MyFieldOne,MyFieldTwo
这些都导致http 502或400s.
如何在我的请求中引用@ search.score值?
编辑
Azure搜索现在支持使用新的search.score()
OData功能按分数排序.例如,要按分数按名称排序,请执行以下操作:
$orderby=search.score() desc, name asc
该API参考已更新,包括新search.score()
功能.
原始答案:
Azure Search目前不允许您引用orderby
子句中的分数.请投票支持此UserVoice建议,以帮助我们确定此工作的优先顺序.
但是请注意,两个文档的得分很少相同,因此在使用后$oderby=@search.score
很少会使用断路器,并且在大多数情况下,排序顺序将等同于按等级排序,这是默认情况下发生的情况.