/** * {@inheritdoc} */ public function getViewData(DocumentIterator $result, ViewData $data) { /** @var $data RangeAwareViewData */ $data->setMinBounds(new \DateTime(date(\DateTime::ISO8601, $result->getAggregations()['date_range_agg']->getValue()['min'] / 1000))); $data->setMaxBounds(new \DateTime(date(\DateTime::ISO8601, $result->getAggregations()['date_range_agg']->getValue()['max'] / 1000))); return $data; }
/** * {@inheritdoc} */ public function getViewData(DocumentIterator $result, ViewData $data) { /** @var $data ViewData\RangeAwareViewData */ $data->setMinBounds($result->getAggregations()['range_agg']->getValue()['min']); $data->setMaxBounds($result->getAggregations()['range_agg']->getValue()['max']); return $data; }
/** * Iteration test. * * @param array $rawData * @param array $expected * * @dataProvider getTestIterationData */ public function testIteration($rawData, $expected) { $documentsIterator = new DocumentIterator($rawData, [], []); $aggregations = $documentsIterator->getAggregations(); $values = []; foreach ($aggregations as $bucket) { foreach ($bucket as $result) { $values[] = $result->getValue(); } } $this->assertEquals($expected, $values); }
/** * Fetches buckets from search results. * * @param DocumentIterator $result Search results. * @param string $name Filter name. * * @return array Buckets. */ protected function fetchAggregation(DocumentIterator $result, $name) { $aggregations = $result->getAggregations(); if (isset($aggregations[$name])) { return $aggregations[$name]; } $buckets = $aggregations->find(sprintf('%s-filter.%s', $name, $name)); if (isset($buckets)) { return $buckets; } return []; }
/** * Test for getAggregations(). */ public function testGetAggregations() { $rawData = ['hits' => ['total' => 0, 'hits' => []], 'aggregations' => ['agg_foo' => ['doc_count' => 1]]]; $iterator = new DocumentIterator($rawData, [], []); $this->assertInstanceOf('ONGR\\ElasticsearchBundle\\Result\\Aggregation\\AggregationIterator', $iterator->getAggregations()); $this->assertEquals(['doc_count' => 1], $iterator->getAggregations()['foo']->getValue()); }