目前,我正在按文档分数对汇总进行排序,因此大多数相关项在汇总列表中排在首位,如下所示:
{ 'aggs' : { 'guilds' : { 'terms' : { 'field' : 'guilds.title.original', 'order' : [{'max_score' : 'desc'}], 'aggs' : { 'max_score' : { 'script' : 'doc.score' } } } } } }
我想在JSON中向订单条款订单数组添加另一个排序选项。但是当我这样做时:
{ 'order' : [{'max_score' : 'desc'}, {"_count" : "desc"}, }
第二种无效。例如,当所有分数均相等时,则应基于查询进行排序,但不起作用。
作为对安德烈(Andrei)回答…以多个条件排序聚合的更正,您 必须 创建一个如术语聚合:订单中所示的数组,并且 必须 使用ElasticSearch 1.5或更高版本。
因此,对于Andrei的答案,更正为: "order" : [ { "max_score": "desc" }, { "_count": "desc" } ]
"order" : [ { "max_score": "desc" }, { "_count": "desc" } ]
正如安德烈有它,ES不会抱怨,但将 只 使用“命令”元素中列出的最后一个项目。