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