怎么又是你

bucket_selector中能否获得上一级的params?

Elasticsearch | 作者 cleverxiao | 发布于2020年05月13日 | 阅读数:1602

想要通过bucket_selector筛选出histogram.avg聚合中平均值最大的桶,可以使用max_bucket计算出返回的桶中平均值的最大值,但是不能在bucket_selector中获取到,查看了官方文档,文档上的例子都是一个固定值。
自己分析,一个是parent型一个是sibling型,而且max_bucket的计算顺序是在bucket_selector之后的。
那么是否就是不能在bucket_selector中获得到max_bucket的参数?
那么如果要实现这个需求,是否只能用bucket_sort:{sort:[{avg:{order:desc}],size:1}实现?
 
附上部分dsl
{
  "size": 0,
  "aggs": {
    "per_period": {
      "date_histogram": {
        "field": "timestamp",
        "interval": "15d",
        "format": "yyyy-MM-dd"
      },
      "aggs":{
        "avg":{
          "sum":{
            "field": "AvgTicketPrice"
          }
        }
      }
    },
    "max_per_period_metric":{
      "max_bucket": {
        "buckets_path": "per_period>avg"
      }
    }
  }
}
已邀请:

要回复问题请先登录注册