Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Extended Stats Bucket Aggregation

More info about extended stats bucket aggregation is in the official elasticsearch docs

This aggregation provides a few more statistics (sum of squares, standard deviation, etc) compared to the stats_bucket` aggregation.

Simple example

{
    "aggs" : {
        "sales_per_month" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "month"
            },
            "aggs": {
                "sales": {
                    "sum": {
                        "field": "price"
                    }
                }
            }
        },
        "stats_monthly_sales": {
            "extended_stats_bucket": {
                "buckets_paths": "sales_per_month>sales" 
            }
        }
    }
}

And now the query via DSL:

$search = new Search();

$dateAggregation = new DateHistogramAggregation('sales_per_month', 'date', 'month');
$dateAggregation->addAggregation(
    new SumAggregation('sales', 'price')
);

$search->addAggregation($dateAggregation);
$search->addAggregation(
    new ExtendedStatsBucketAggregation('stats_monthly_sales', 'sales_per_month>sales')
);

$aggArray = $search->toArray();