max*_*v15 11 sorting aggregation elasticsearch
我有这种结构的文档:
{
FIELD1:string,
FIELD2:
[ {SUBFIELD:number}, {SUBFIELD:number}...]
}
Run Code Online (Sandbox Code Playgroud)
我想对FIELD2.SUBFIELDs中数字总和的结果进行排序:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我获得的桶没有排序,但我希望桶按"a2"值排序.我怎么能这样做?谢谢!
Val*_*Val 36
你几乎拥有它.您只需要在术语聚合中添加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"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
来自 Val 的精彩/sf/users/322320561/
基本上是同样的事情,但以下是我找到每个“名称”的最大“大小”,并显示前 25 个最大的方法:
{
"size": 0,
"aggs": {
"agg1": {
"terms": {
"field": "name.keyword",
"order": {
"agg2": "desc"
},
"size": 25
},
"aggs": {
"agg2": {
"max": {
"field": "size"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21307 次 |
| 最近记录: |