
查询语句如下面所示
{ "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" } } } } } } } } } } } } |