/** * Tests integration of the FiltersAggregation anonymous example from the documentation. * * @link https://github.com/ongr-io/ElasticsearchDSL/blob/master/docs/Aggregation/Filters.md#anonymous-example */ public function testFiltersAggregationAnonymousExample() { $errorTermFilter = new TermQuery('body', 'error'); $warningTermFilter = new TermQuery('body', 'warning'); $histogramAggregation = new HistogramAggregation('monthly', 'timestamp'); $histogramAggregation->setInterval('1M'); $filterAggregation = new FiltersAggregation('grades_stats', ['error' => $errorTermFilter, 'warning' => $warningTermFilter], true); $filterAggregation->addAggregation($histogramAggregation); $search = new Search(); $search->addAggregation($filterAggregation); $this->assertSame(['aggregations' => ['grades_stats' => ['filters' => ['filters' => [['term' => ['body' => 'error']], ['term' => ['body' => 'warning']]]], 'aggregations' => ['monthly' => ['histogram' => ['field' => 'timestamp', 'interval' => '1M']]]]]], $search->toArray()); }