A nested filter works in a similar fashion to the
nested query, except it’s
used as a filter. It follows exactly the same structure, but also allows
to cache the results (set _cache to true), and have it named (set
the _name value). For example:

The nested filter also supports a join option which controls whether to perform the block join or not.
By default, it’s enabled. But when it’s disabled, it emits the hidden nested documents as hits instead of the joined root document.

This is useful when a nested filter is used in a facet where nested is enabled, like you can see in the example below: