[[query-dsl-has-parent-filter]] === Has Parent Filter The `has_parent` filter accepts a query and a parent type. The query is executed in the parent document space, which is specified by the parent type. This filter return child documents which associated parents have matched. For the rest `has_parent` filter has the same options and works in the same manner as the `has_child` filter. [float] ==== Filter example [source,js] -------------------------------------------------- { "has_parent" : { "parent_type" : "blog", "query" : { "term" : { "tag" : "something" } } } } -------------------------------------------------- The `parent_type` field name can also be abbreviated to `type`. The way that the filter is implemented is by first running the parent query, doing the matching up to the child doc for each document matched. The `has_parent` filter also accepts a filter instead of a query: [source,js] -------------------------------------------------- { "has_parent" : { "type" : "blog", "filter" : { "term" : { "text" : "bonsai three" } } } } -------------------------------------------------- [float] ==== Memory considerations With 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. [float] ==== Caching The `has_parent` filter cannot be cached in the filter cache. The `_cache` and `_cache_key` options are a no-op in this filter. Also any filter that wraps the `has_parent` filter either directly or indirectly will not be cached.