示例#1
0
 /**
  * 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());
 }