即使是不成熟的尝试,也胜于胎死腹中的策略。

elasticsearch嵌套聚合问题

Elasticsearch | 作者 linjikun | 发布于2019年07月22日 | 阅读数:271

在elasticsearch中能否实现这样的场景:
1.根据字段A分组,同时获取字段B的最大值max(B)
2.获取字段B的值为max(B)的记录的集合C
3.对集合C进行聚合
已邀请:

ziyou - 一个学习ELK的Java程序员

赞同来自: linjikun

下面这个就是你说的场景,是可以实现的,下面是对li字段进行分组,取cost最大的值,然后对最大的cost集合进行求和聚合。
{
"aggs": {
"3": {
"sum_bucket": {
"buckets_path": "3-bucket>3-metric"
}
},
"3-bucket": {
"terms": {
"field": "li.keyword",
"size": 5,
"order": {
"_key": "desc"
}
},
"aggs": {
"3-metric": {
"max": {
"field": "cost"
}
}
}
}
},
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"x_st": {
"gte": 1565625600000,
"lte": 1565711999999,
"format": "epoch_millis"
}
}
}
]
}
}

要回复问题请先登录注册