/** * @group functional */ public function testFilterAggregation() { $agg = new Filters('by_color'); $agg->addFilter(new Term(array('color' => 'blue')), 'blue'); $agg->addFilter(new Term(array('color' => 'red')), 'red'); $avg = new Avg('avg_price'); $avg->setField('price'); $agg->addAggregation($avg); $query = new Query(); $query->addAggregation($agg); $results = $this->_getIndexForTest()->search($query)->getAggregation('by_color'); $resultsForBlue = $results['buckets']['blue']; $resultsForRed = $results['buckets']['red']; $this->assertEquals(2, $resultsForBlue['doc_count']); $this->assertEquals(1, $resultsForRed['doc_count']); $this->assertEquals((5 + 8) / 2, $resultsForBlue['avg_price']['value']); $this->assertEquals(1, $resultsForRed['avg_price']['value']); }