我想通过top_hit的doc.score订购存储桶.我目前的实施如下.
group_by_iid: { terms: { field: 'iid',order: { max_score: 'desc' },size: 0 },aggs: { max_score: { max: { script: 'doc.score' } },top_hit: { top_hits: { sort: [{ source_priority: { order: 'desc' } }],size: 1 } } } }
这是错误的,因为存储桶按其最高分排序,而不是按其最高source_priority文档的分数排序.有没有办法解决这个问题?
我有同样的问题,我解决它的方法是在文档分数上引入子聚合.然后在我的外部聚合中,我按照max_score聚合的名称排序.
GET /my-index/my-type/_search { "query": { "bool" : { "should" : [ { "match" : { "searchTerm" : { "query" : "style","type" : "boolean" } } },{ "flt_field" : { "searchTerm" : { "like_text" : "style" } } }] } },"aggs": { "group_by_target_url": { "terms": { "field": "targetUrl","order": { "max_score": "desc" } },"aggs": { "max_score": { "max": { "script": "doc.score" } } } } } }
我按照此链接上的说明操作: