Using the has_child query
Elasticsearch does not only support simple unrelated documents, it also lets you define a hierarchy based on our parent and children. The has_child
query allows querying for parent documents of children matching other queries.
Getting ready
You need an up-and-running Elasticsearch installation as we described in the Downloading and installing Elasticsearch recipe in Chapter 2, Downloading and Setup.
To execute curl
via the command line, you need to install curl
for your operating system.
To correctly execute the following commands, you need an index populated with the chapter_07/populate_relations.sh
script available in online code.
How to do it...
To execute the has_child
queries, we will perform the following steps:
We want to search parents
test-type
of childrentest-type2
, which has a term in the field value asvalue1
. We can create this kind of query:curl -XPOST 'http://127.0.0.1:9200/test-index/test- type/_search?pretty' -d '{ ...