Children Aggregation

More info about children aggregation is in the official elasticsearch docs

A special single bucket aggregation that enables aggregating from buckets on parent document types to buckets on child documents.

Simple example

{
    "aggregations": {
        "author_count": {
            "children": {
                "type": "answer"
            },
            "aggregations": {
                "top_names": {
                    "terms": {
                        "field": "owner.display_name"
                    }
                }
            }
        }
    }
}

And now the query via DSL:

$termsAggregation = new TermsAggregation('top_names', 'owner.display_name');

$childrenAggregation = new ChildrenAggregation('author_count', 'answer');
$childrenAggregation->addAggregation($termsAggregation);

$search = new Search();
$search->addAggregation($childrenAggregation);

$queryArray = $search->toArray();