如何在简单计数上获得衍生聚合

时间:2016-07-19 10:35:26

标签: elasticsearch

使用ES 2.3.3

我想使用Derivative Aggregation但是应该用来计算它的指标不是avgsum,它只是每个doc_count的原始"aggs" : { "sales_per_month" : { "date_histogram" : { "field" : "date", "interval" : "month" }, "aggs": { "sales": { "stats": { "field": "price" } }, "sales_deriv": { "derivative": { "buckets_path": "sales.count" } } } } } 父直方图的桶(sales_per_month)。

我通过使用stats agg:

让它像这样工作
java.lang.String:

public class Test{
    public static void main(final String[] args){
        System.out.println("c".getClass().getName());
    }
}

这真的是这样做的方式还是我错过了一种更简单的方法?

2 个答案:

答案 0 :(得分:1)

我认为它不会比这更简单。它看起来很好,简单而优雅。

答案 1 :(得分:0)

不必仅出于引用stats的目的就定义嵌套count聚合。每个存储桶都有一个对应于_count的隐式doc_count属性,您可以在bucket_path中使用它。

在您的示例中,您引用的是上下文父级聚合,您只需引用_count(即您已经在sales_per_month聚合的上下文中)。

在您的特定情况下,您可以将其用作:

"aggs": {
  "sales_per_month": {
    "date_histogram": {
      "field": "date",
      "interval": "month"
    },
    "aggs": {
      "sales_deriv": {
        "derivative": {
          "buckets_path": "_count"
        }
      }
    }
  }
}