/** * {@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 []; }
/** * {@inheritdoc} */ public function getViewData(DocumentIterator $result, ViewData $data) { /** @var ViewData\PagerAwareViewData $data */ $data->setPager(new PagerService(new CountAdapter($result->getTotalCount()), array_filter(['page' => $data->getState()->getValue(), 'limit' => $this->getCountPerPage(), 'max_pages' => $this->getMaxPages()]))); return $data; }
/** * Test for getSuggestions(). */ public function testGetSuggestions() { $rawData = ['hits' => ['total' => 0, 'hits' => []], 'suggest' => ['foo' => [['text' => 'foobar', 'offset' => 0, 'length' => 6, 'options' => [['text' => 'foobar', 'freq' => 77, 'score' => 0.8888889]]]]]]; $iterator = new DocumentIterator($rawData, [], []); $suggestions = $iterator->getSuggestions(); $this->assertInstanceOf('ONGR\\ElasticsearchBundle\\Result\\Suggestion\\SuggestionIterator', $iterator->getSuggestions()); $expectedSuggestion = new SuggestionEntry('foobar', 0, 6, new OptionIterator($rawData['suggest']['foo'][0]['options'])); $this->assertEquals($expectedSuggestion, $suggestions['foo'][0]); }