From 0f24a616e4a534550b12f58f0cce783f9a0d3b1b Mon Sep 17 00:00:00 2001 From: Aivaras Gotovskis <aivaras.gotovskis@ongr.io> Date: Fri, 10 Jul 2015 12:06:46 +0300 Subject: [PATCH] Add range aggregation doc. --- docs/Aggregation/Range.md | 82 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs/Aggregation/Range.md diff --git a/docs/Aggregation/Range.md b/docs/Aggregation/Range.md new file mode 100644 index 0000000..45b9fac --- /dev/null +++ b/docs/Aggregation/Range.md @@ -0,0 +1,82 @@ +# Range Aggregation + +> More info about range aggregation is in the [official elasticsearch docs][1] + +A multi-bucket value source based aggregation that enables the user to define a set of +ranges - each representing a bucket. + +## Simple example + +```JSON +{ + "aggs" : { + "agg_price_ranges" : { + "range" : { + "field" : "price", + "ranges" : [ + { "to" : 50 }, + { "from" : 50, "to" : 100 }, + { "from" : 100 } + ] + } + } + } +} +``` + +And now the query via DSL: + +```php +$rangeAggregation = new RangeAggregation( + 'price_ranges', + 'price', + [ + ['to' => 50], + ['from' => 50, 'to' => 100], + ['from' => 100], + ] +); + +$search = new Search(); +$search->addAggregation($rangeAggregation); + +$queryArray = $search->toArray(); +``` + +## Keyed example + +```php +$rangeAggregation = new RangeAggregation( + 'price_ranges', + 'price', + [ + ['key' => 'cheap', 'to' => 50], + ['from' => 50, 'to' => 100], + ['key' => 'expensive', 'from' => 100], + ], + true +); + +$search = new Search(); +$search->addAggregation($rangeAggregation); + +$queryArray = $search->toArray(); +``` + +## Adder example + +```php +$rangeAggregation = new RangeAggregation('price_ranges', 'price'); +$rangeAggregation->setKeyed(true); +$rangeAggregation->addRange(null, 50, 'cheap'); +$rangeAggregation->addRange(50, 100); +$rangeAggregation->addRange(100, null, 'expensive'); + +$search = new Search(); +$search->addAggregation($rangeAggregation); + +$queryArray = $search->toArray(); +``` + + +[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-range-aggregation.html -- GitLab