平均桶聚合编辑

一个兄弟管道聚合,用于计算兄弟聚合中指定指标的平均值。指定指标必须是数值型,兄弟聚合必须是多桶聚合。

语法编辑

"avg_bucket": {
  "buckets_path": "sales_per_month>sales",
  "gap_policy": "skip",
  "format": "#,##0.00;(#,##0.00)"
}

参数编辑

buckets_path
(必需,字符串) 要平均的桶的路径。有关语法,请参见 buckets_path 语法
gap_policy
(可选,字符串) 在数据中发现间隙时要应用的策略。有关有效值,请参见 处理数据中的间隙。默认值为 skip
format
(可选,字符串) DecimalFormat 模式 用于输出值。如果指定,则格式化的值将返回在聚合的 value_as_string 属性中。

响应主体编辑

value
(浮点数) 在 buckets_path 中指定的指标的平均值。
value_as_string
(字符串) 聚合的格式化输出值。此属性仅在请求中指定了 format 时才提供。

示例编辑

以下 avg_monthly_sales 聚合使用 avg_bucket 计算每月平均销售额

POST _search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "month"
      },
      "aggs": {
        "sales": {
          "sum": {
            "field": "price"
          }
        }
      }
    },
    "avg_monthly_sales": {
// tag::avg-bucket-agg-syntax[]               
      "avg_bucket": {
        "buckets_path": "sales_per_month>sales",
        "gap_policy": "skip",
        "format": "#,##0.00;(#,##0.00)"
      }
// end::avg-bucket-agg-syntax[]               
    }
  }
}

avg_bucket 配置的开始。注释不是示例的一部分。

avg_bucket 配置的结束。注释不是示例的一部分。

请求返回以下响应

{
  "took": 11,
  "timed_out": false,
  "_shards": ...,
  "hits": ...,
  "aggregations": {
    "sales_per_month": {
      "buckets": [
        {
          "key_as_string": "2015/01/01 00:00:00",
          "key": 1420070400000,
          "doc_count": 3,
          "sales": {
            "value": 550.0
          }
        },
        {
          "key_as_string": "2015/02/01 00:00:00",
          "key": 1422748800000,
          "doc_count": 2,
          "sales": {
            "value": 60.0
          }
        },
        {
          "key_as_string": "2015/03/01 00:00:00",
          "key": 1425168000000,
          "doc_count": 2,
          "sales": {
            "value": 375.0
          }
        }
      ]
    },
    "avg_monthly_sales": {
      "value": 328.33333333333333,
      "value_as_string": "328.33"
    }
  }
}