WARNING: Version 1.7 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.
Has Parent Query
editHas Parent Query
editThe has_parent
query works the same as the
has_parent
filter, by automatically wrapping the filter with a constant_score (when
using the default score type). It has the same syntax as the
has_parent
filter.
{ "has_parent" : { "parent_type" : "blog", "query" : { "term" : { "tag" : "something" } } } }
Scoring capabilities
editThe has_parent
also has scoring support. The
supported score types are score
or none
. The default is none
and
this ignores the score from the parent document. The score is in this
case equal to the boost on the has_parent
query (Defaults to 1). If
the score type is set to score
, then the score of the matching parent
document is aggregated into the child documents belonging to the
matching parent document. The score type can be specified with the
score_mode
field inside the has_parent
query:
{ "has_parent" : { "parent_type" : "blog", "score_mode" : "score", "query" : { "term" : { "tag" : "something" } } } }
Memory Considerations
editIn order to support parent-child joins, all of the (string) parent IDs must be resident in memory (in the field data cache. Additionally, every child document is mapped to its parent using a long value (approximately). It is advisable to keep the string parent ID short in order to reduce memory usage.
You can check how much memory is being used by the ID cache using the indices stats or nodes stats APIS, eg:
curl -XGET "http://localhost:9200/_stats/id_cache?pretty&human"