WARNING: Version 0.90 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. This query is experimental and is available from version
0.19.10
.
{ "has_parent" : { "parent_type" : "blog", "query" : { "term" : { "tag" : "something" } } } }
Scoring capabilities
editThe has_parent
also has scoring support from version 0.20.2
. 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_type
field inside the has_parent
query:
{ "has_parent" : { "parent_type" : "blog", "score_type" : "score", "query" : { "term" : { "tag" : "something" } } } }
Scope
editThe _scope
support has been removed from version 0.90.beta1
. See:
https://github.com/elasticsearch/elasticsearch/issues/2606
A _scope
can be defined on the filter allowing to run facets on the
same scope name that will work against the parent documents. For
example:
{ "has_parent" : { "_scope" : "my_scope", "parent_type" : "blog", "query" : { "term" : { "tag" : "something" } } } }
Memory Considerations
editWith the current implementation, all _id
values are loaded to memory
(heap) in order to support fast lookups, so make sure there is enough
memory for it.