总和桶聚合(Sum Bucket Aggregation)

警告:此功能是实验性的,可能会在将来的版本中完全更改或删除。Elastic将采取最大的努力来解决此问题,但实验功能不受SLA官方功能的支持。

总和桶聚合用于计算一组聚合创建的所有桶中指定度量的和。指定的度量必须是数字型而且这个组聚合必须是多桶聚合。

语法

sum_bucket聚合结构如下:

{
    "sum_bucket": {
        "buckets_path": "the_sum"
    }
}

sum_bucket参数如下:

参数名称

描述

是否必填

默认值

buckets_path

想要计算总和的桶路径,点击the section called “buckets_path Syntaxedit”查看更多细节

必填

gap_policy

当数据缺口出现时采用的策略,点击the section called “Dealing with gaps in the dataedit”查看更多细节

可选

skip

format

用于规范聚合输出值的格式

可选

null

以下代码段计算所有月销售总额的总和:

POST /sales/_search
{
    "size": 0,
    "aggs" : {
        "sales_per_month" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "month"
            },
            "aggs": {
                "sales": {
                    "sum": {
                        "field": "price"
                    }
                }
            }
        },
        "sum_monthly_sales": {
            "sum_bucket": {
                "buckets_path": "sales_per_month>sales" #1
            }
        }
    }
}

1

buckets_path指示这个sum_bucket聚合是要得到sales_per_month日期直方图中的sales聚合sum的总和

可能得到如下的响应:

Last updated

Was this helpful?