| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | [[query-dsl-has-parent-query]]=== Has Parent QueryThe `has_parent` query works the same as the<<query-dsl-has-parent-filter,has_parent>>filter, by automatically wrapping the filter with a constant_score (whenusing the default score type). It has the same syntax as the<<query-dsl-has-parent-filter,has_parent>>filter. [source,js]--------------------------------------------------{    "has_parent" : {        "parent_type" : "blog",        "query" : {            "term" : {                "tag" : "something"            }        }    }}--------------------------------------------------[float]==== Scoring capabilitiesThe `has_parent` also has scoring support. Thesupported score types are `score` or `none`. The default is `none` andthis ignores the score from the parent document. The score is in thiscase equal to the boost on the `has_parent` query (Defaults to 1). Ifthe score type is set to `score`, then the score of the matching parentdocument is aggregated into the child documents belonging to thematching parent document. The score type can be specified with the`score_mode` field inside the `has_parent` query:[source,js]--------------------------------------------------{    "has_parent" : {        "parent_type" : "blog",        "score_mode" : "score",        "query" : {            "term" : {                "tag" : "something"            }        }    }}--------------------------------------------------[float]==== Memory ConsiderationsIn order to support parent-child joins, all of the (string) parent IDs must be resident in memory (in the <<index-modules-fielddata,field data cache>>. Additionaly, every child document is mapped to its parent using a long value (approximately). It is advisable to keep the string parent ID shortin order to reduce memory usage.You can check how much memory is being used by the ID cache using the<<indices-stats,indices stats>> or <<cluster-nodes-stats,nodes stats>>APIS, eg:[source,js]--------------------------------------------------curl -XGET "http://localhost:9200/_stats/id_cache?pretty&human"--------------------------------------------------
 |