查询语句如下面所示
{
"size": 0,
"aggs": {
"tags": {
"nested": {
"path": "tags"
},
"aggs": {
"key": {
"filter": {
"term": {
"tags.key": "http.url"
}
},
"aggs": {
"values": {
"terms": {
"field": "tags.value",
"size": 100
},
"aggs": {
"rev": {
"reverse_nested": {},
"aggs": {
"duration": {
"avg": {
"field": "duration"
}
}
}
}
}
}
}
}
}
}
}
}
我想对 duration 这个字段按照平均值从大到小排序,找出前 100 条数据,那么这么排序要加在什么地方呢?
1
zsl199512101234 2020-11-27 14:38:09 +08:00
|
2
sniperking1234 OP @zsl199512101234 我试了下,这样写 sort 貌似对有聚合的查询不起作用。
|
3
sniperking1234 OP 找到方法了,这么写就可以
{ "size": 0, "aggs": { "tags": { "nested": { "path": "tags" }, "aggs": { "key": { "filter": { "term": { "tags.key": "http.url" } }, "aggs": { "values": { "terms": { "field": "tags.value", "size": 200, "order": {"rev>duration": "desc"} }, "aggs": { "rev": { "reverse_nested": {}, "aggs": { "duration": { "avg": { "field": "duration" } } } } } } } } } } } } |