public function testGetQuery() { $builder = new ElasticaQueryBuilder($this->options()); $query = $builder->getQuery(); $this->assertInstanceOf('Elastica\\Query', $query); $queryAsArray = $query->toArray(); $this->assertInternalType('array', $queryAsArray); $this->assertCount(3, $queryAsArray); $this->assertArrayHasKey('size', $queryAsArray); $this->assertArrayHasKey('query', $queryAsArray); $this->assertArrayHasKey('aggs', $queryAsArray); }
public function init() { parent::init(); $builder = new ElasticaQueryBuilder($this->options); /** @var \Elastica\Query $query */ $query = $builder->getQuery(); if (!$query) { $this->errors = $builder->getErrors(); return; } /** @var \anmoroz\analytics\components\ElasticaBase $elasticaBase */ $elasticaBase = $this->locator->get('elastica'); $resultSet = $elasticaBase->getIndex()->search($query); $aggregations = $resultSet->getAggregation(ElasticaQueryBuilder::GROUP_AGGREGATION_NAME); $this->totalHits = $resultSet->getTotalHits(); $this->totalTime = $resultSet->getTotalTime(); $this->arrayIterator = new \ArrayIterator($aggregations['buckets']); $this->viewHelperToLocator($builder->getAggregationList()); }