WARNING: Version 1.4 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Children Aggregation
editChildren Aggregation
editAdded in 1.4.0.Beta1.
A special single bucket aggregation that enables aggregating from buckets on parent document types to buckets on child documents.
This aggregation relies on the _parent field in the mapping. This aggregation has a single option:
-
type
- The what child type the buckets in the parent space should be mapped to.
For example, let’s say we have an index of questions and answers. The answer type has the following _parent
field in the mapping:
{ "answer" : { "_parent" : { "type" : "question" } } }
The question typed document contain a tag field and the answer typed documents contain an owner field. With the children
aggregation the tag buckets can be mapped to the owner buckets in a single request even though the two fields exist in
two different kinds of documents.
An example of a question typed document:
{ "body": "<p>I have Windows 2003 server and i bought a new Windows 2008 server...", "title": "Whats the best way to file transfer my site from server to a newer one?", "tags": [ "windows-server-2003", "windows-server-2008", "file-transfer" ], }
An example of an answer typed document:
{ "owner": { "location": "Norfolk, United Kingdom", "display_name": "Sam", "id": 48 }, "body": "<p>Unfortunately your pretty much limited to FTP...", "creation_date": "2009-05-04T13:45:37.030" }
The following request can be built that connects the two together:
{ "aggs": { "top-tags": { "terms": { "field": "tags", "size": 10 }, "aggs": { "to-answers": { "children": { "type" : "answer" }, "aggs": { "top-names": { "terms": { "field": "owner.display_name", "size": 10 } } } } } } } }
The above example returns the top question tags and per tag the top answer owners.
Possible response:
{ "aggregations": { "top-tags": { "buckets": [ { "key": "windows-server-2003", "doc_count": 25365, "to-answers": { "doc_count": 36004, "top-names": { "buckets": [ { "key": "Sam", "doc_count": 274 }, { "key": "chris", "doc_count": 19 }, { "key": "david", "doc_count": 14 }, ... ] } } }, { "key": "linux", "doc_count": 18342, "to-answers": { "doc_count": 6655, "top-names": { "buckets": [ { "key": "abrams", "doc_count": 25 }, { "key": "ignacio", "doc_count": 25 }, { "key": "vazquez", "doc_count": 25 }, ... ] } } }, { "key": "windows", "doc_count": 18119, "to-answers": { "doc_count": 24051, "top-names": { "buckets": [ { "key": "molly7244", "doc_count": 265 }, { "key": "david", "doc_count": 27 }, { "key": "chris", "doc_count": 26 }, ... ] } } }, { "key": "osx", "doc_count": 10971, "to-answers": { "doc_count": 5902, "top-names": { "buckets": [ { "key": "diago", "doc_count": 4 }, { "key": "albert", "doc_count": 3 }, { "key": "asmus", "doc_count": 3 }, ... ] } } }, { "key": "ubuntu", "doc_count": 8743, "to-answers": { "doc_count": 8784, "top-names": { "buckets": [ { "key": "ignacio", "doc_count": 9 }, { "key": "abrams", "doc_count": 8 }, { "key": "molly7244", "doc_count": 8 }, ... ] } } }, { "key": "windows-xp", "doc_count": 7517, "to-answers": { "doc_count": 13610, "top-names": { "buckets": [ { "key": "molly7244", "doc_count": 232 }, { "key": "chris", "doc_count": 9 }, { "key": "john", "doc_count": 9 }, ... ] } } }, { "key": "networking", "doc_count": 6739, "to-answers": { "doc_count": 2076, "top-names": { "buckets": [ { "key": "molly7244", "doc_count": 6 }, { "key": "alnitak", "doc_count": 5 }, { "key": "chris", "doc_count": 3 }, ... ] } } }, { "key": "mac", "doc_count": 5590, "to-answers": { "doc_count": 999, "top-names": { "buckets": [ { "key": "abrams", "doc_count": 2 }, { "key": "ignacio", "doc_count": 2 }, { "key": "vazquez", "doc_count": 2 }, ... ] } } }, { "key": "wireless-networking", "doc_count": 4409, "to-answers": { "doc_count": 6497, "top-names": { "buckets": [ { "key": "molly7244", "doc_count": 61 }, { "key": "chris", "doc_count": 5 }, { "key": "mike", "doc_count": 5 }, ... ] } } }, { "key": "windows-8", "doc_count": 3601, "to-answers": { "doc_count": 4263, "top-names": { "buckets": [ { "key": "molly7244", "doc_count": 3 }, { "key": "msft", "doc_count": 2 }, { "key": "user172132", "doc_count": 2 }, ... ] } } } ] } } }