public function testFilterAggregation() { $agg = new Filter("filter"); $agg->setFilter(new Term(array("color" => "blue"))); $avg = new Avg("price"); $avg->setField("price"); $agg->addAggregation($avg); $query = new Query(); $query->addAggregation($agg); $results = $this->_index->search($query)->getAggregation("filter"); $results = $results['price']['value']; $this->assertEquals((5 + 8) / 2.0, $results); }
/** * @group functional */ public function testFilterAggregation() { $agg = new Filter('filter'); $agg->setFilter(new Term(array('color' => 'blue'))); $avg = new Avg('price'); $avg->setField('price'); $agg->addAggregation($avg); $query = new Query(); $query->addAggregation($agg); $results = $this->_getIndexForTest()->search($query)->getAggregation('filter'); $results = $results['price']['value']; $this->assertEquals((5 + 8) / 2.0, $results); }
/** * filter aggregation * * @link http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html * @param string $name * @param AbstractFilter $filter * @return FilterAggregation */ public function filter($name, AbstractFilter $filter) { $filterAgg = new FilterAggregation($name); $filterAgg->setFilter($filter); return $filterAgg; }