假设我在ES中有以下文档,每个文档都有3个字段:f1,f2和score。 我想查找所有文档,按f1,f2分组并按组最大分数排序,在SQL中我可以这样做:
select f1,f2,score from table group by f1,f2 order by max(score)
elasticsearch的等价物是什么?嵌套的术语聚合没有给出正确的顺序,因为返回的f2术语桶都嵌套在f1术语的同一个桶中。
答案 0 :(得分:3)
以下聚合应该有效
{
"aggs": {
"fileCombo": {
"terms": {
"script": "doc['field1'].value + doc['field2'].value",
"order": {
"maxScore": "desc"
}
},
"aggs": {
"maxScore": {
"max": {
"field": "score"
}
}
}
}
}
}
首先根据field1和field2进行聚合。 最大字段的下一个订单。