我正在尝试进行汇总,然后将得分最高的结果排在最前面。即使聚合成功,但其得分仍未排序。如何使其成为可能?
"aggs": {
"group": {
"terms": {
"field": "description.keyword",
"order": {
"description_score": "desc"
}
},
"aggs": {
"group_docs": {
"top_hits": {
"size": 1
}
}
}
},
}
最佳答案
由于@Lupanoide提到的分数不是聚合计算的,因此您无法根据文档分数对存储桶进行排序。相反,可以使用field collapsing
Allows to collapse search results based on field values. The collapsing is done by selecting only the top sorted document per collapse key
{
"query": {
"match_all": {}
},
"collapse": { --> group by on given field
"field": "sources.keyword"
}
}
默认情况下,搜索结果按“得分”排序,因此您无需添加“排序”
关于python - 在汇总中对_score最好的 Elasticsearch 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61364186/