在Elasticsearch中聚合后排序
我有这种结构的文档:
{ FIELD1:string,
FIELD2:
[ {SUBFIELD:number}, {SUBFIELD:number}...]
}
我想对FIELD2.SUBFIELDs中的数字总和的结果进行排序:
GET myindex/_search{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
如果这样做,我将获得未排序的存储桶,但是我希望存储桶按“ a2”值进行排序。我该怎么做?谢谢!
回答:
你差点就吃了。你只需要一个添加order
属性到你的a1
条件聚合,是这样的:
GET myindex/_search{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0,
"order": {"a2": "desc"} <--- add this
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
以上是 在Elasticsearch中聚合后排序 的全部内容, 来源链接: utcz.com/qa/419131.html