# Filter Aggregation > More info about filter aggregation is in the [official elasticsearch docs][1] Defines a single bucket of all the documents in the current document set context that match a specified filter. Often this will be used to narrow down the current aggregation context to a specific set of documents. ## Simple example ```JSON { "aggregations" : { "agg_red_products" : { "filter" : { "term": { "color": "red" } }, "aggs" : { "agg_avg_price" : { "avg" : { "field" : "price" } } } } } } ``` And now the query via DSL: ```php $termFilter = new TermFilter('color', 'red'); $avgAggregation = new AvgAggregation('avg_price', 'price'); $filterAggregation = new FilterAggregation('grades_stats', $termFilter); $filterAggregation->addAggregation($avgAggregation); $search = new Search(); $search->addAggregation($filterAggregation); $queryArray = $search->toArray(); ``` [1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html