示例#1
0
 /**
  * @group functional
  */
 public function testAvgAggregation()
 {
     $agg = new Avg('avg');
     $agg->setField('price');
     $query = new Query();
     $query->addAggregation($agg);
     $results = $this->_getIndexForTest()->search($query)->getAggregations();
     $this->assertEquals((5 + 8 + 1 + 3) / 4.0, $results['avg']['value']);
 }
 /**
  * @group unit
  */
 public function testToArray()
 {
     $expected = array('global' => new \stdClass(), 'aggs' => array('avg_price' => array('avg' => array('field' => 'price'))));
     $agg = new GlobalAggregation('all_products');
     $avg = new Avg('avg_price');
     $avg->setField('price');
     $agg->addAggregation($avg);
     $this->assertEquals($expected, $agg->toArray());
 }
 public function testToArray()
 {
     $expected = array("global" => new \stdClass(), "aggs" => array("avg_price" => array("avg" => array("field" => "price"))));
     $agg = new GlobalAggregation("all_products");
     $avg = new Avg("avg_price");
     $avg->setField("price");
     $agg->addAggregation($avg);
     $this->assertEquals($expected, $agg->toArray());
 }
 public function testFilterNoSubAggregation()
 {
     $agg = new Avg("price");
     $agg->setField("price");
     $query = new Query();
     $query->addAggregation($agg);
     $results = $this->_index->search($query)->getAggregation("price");
     $results = $results['value'];
     $this->assertEquals((5 + 8 + 1 + 3) / 4.0, $results);
 }
示例#5
0
 /**
  * @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']);
 }