Is it possible to get field data from parent and child in one elasticsearch request? Essentially, I am trying to capture data for multiple parent fields and multiple child fields in the same iteration with filtering. I tried various methods of binding information to a single request, but could not figure out how to do this. Here is what my comparison looks like: -
Parent:
_id_parent : values {1} _source: {_date (20160316), _time (20160316010000), _id_source (test), _year (2016), _month (1)}
child:
_id_child : values {1} _source: {_id_child (1), _id_parent (1), _child_question (q1), _child_answer (This needs to be done.)}
Expected Result (something similar below):
(PARENT) "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "index", "_type" : "parent", "_id" : "1", "_score" : 1.0, "_source":{_id_parent":"1","_id_source":"test","_date":"20160316","_time":"20160316010000","_year":2016,"_month":"1"} } ] } (CHILD) "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "index", "_type" : "child", "_id" : "1", "_score" : 1.0, "_source":{"_id_child":"1", "_child_question":"q1","_child_answer":"This needs to be done."} } ] }
References:
http://rore.im/posts/elasticsearch-joins/
https://github.com/elastic/elasticsearch/issues/761
https://www.elastic.co/guide/en/elasticsearch/guide/current/children-agg.html
curl -XGET "$ELASTICSEARCH_ENDPOINT/index/parent/_search?pretty=true" -d " { "query": { "match": { "_id_parent": "1" } }, "size" : 10, "aggs": { "_id_parent": { "terms": { "field":"_id_parent", "field":"_id_source", "field":"_date", "field":"_time", "field":"_year", "field":"_month", }, "aggs": { "child": { "children": { "type": "child" }, "aggs": { "child": { "terms": { "field": "child._id_child", "field": "child._child_question", "field": "child._child_answer", } } } } } } } }"