summaryrefslogtreecommitdiff
path: root/docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc')
-rw-r--r--docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc67
1 files changed, 67 insertions, 0 deletions
diff --git a/docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc b/docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc
new file mode 100644
index 0000000..cd49f88
--- /dev/null
+++ b/docs/reference/search/aggregations/bucket/nested-aggregation.asciidoc
@@ -0,0 +1,67 @@
+[[search-aggregations-bucket-nested-aggregation]]
+=== Nested
+
+A special single bucket aggregation that enables aggregating nested documents.
+
+For example, lets say we have a index of products, and each product holds the list of resellers - each having its own
+price for the product. The mapping could look like:
+
+[source,js]
+--------------------------------------------------
+{
+ ...
+
+ "product" : {
+ "properties" : {
+ "resellers" : { <1>
+ "type" : "nested"
+ "properties" : {
+ "name" : { "type" : "string" },
+ "price" : { "type" : "double" }
+ }
+ }
+ }
+ }
+}
+--------------------------------------------------
+
+<1> The `resellers` is an array that holds nested documents under the `product` object.
+
+The following aggregations will return the minimum price products can be purchased in:
+
+[source,js]
+--------------------------------------------------
+{
+ "query" : {
+ "match" : { "name" : "led tv" }
+ }
+ "aggs" : {
+ "resellers" : {
+ "nested" : {
+ "path" : "resellers"
+ },
+ "aggs" : {
+ "min_price" : { "min" : { "field" : "nested.value" } }
+ }
+ }
+ }
+}
+--------------------------------------------------
+
+As you can see above, the nested aggregation requires the `path` of the nested documents within the top level documents.
+Then one can define any type of aggregation over these nested documents.
+
+Response:
+
+[source,js]
+--------------------------------------------------
+{
+ "aggregations": {
+ "resellers": {
+ "min_price": {
+ "value" : 350
+ }
+ }
+ }
+}
+--------------------------------------------------