public function items(ItemsEvent $event) { if (is_array($event->target) && 2 === count($event->target) && reset($event->target) instanceof SearchableInterface && end($event->target) instanceof Query) { list($searchable, $query) = $event->target; $query->setFrom($event->getOffset()); $query->setLimit($event->getLimit()); $results = $searchable->search($query); $event->count = $results->getTotalHits(); //Faceting is being replaced by aggregations if ($results->hasAggregations()) { $event->setCustomPaginationParameter('aggregations', $results->getAggregations()); } elseif ($results->hasFacets()) { $event->setCustomPaginationParameter('facets', $results->getFacets()); } $event->setCustomPaginationParameter('resultSet', $results); $event->items = $results->getResults(); $event->stopPropagation(); } }
public function items(ItemsEvent $event) { if ($event->target instanceof PaginatorAdapterInterface) { /** @var $results PartialResultsInterface */ $results = $event->target->getResults($event->getOffset(), $event->getLimit()); $event->count = $results->getTotalHits(); $event->items = $results->toArray(); $facets = $results->getFacets(); if (null != $facets) { $event->setCustomPaginationParameter('facets', $facets); } $event->stopPropagation(); } }
public function items(ItemsEvent $event) { if (is_array($event->target) && 2 == count($event->target)) { $values = array_values($event->target); list($client, $query) = $values; if ($client instanceof \Solarium\Client && $query instanceof \Solarium\QueryType\Select\Query\Query) { $query->setStart($event->getOffset())->setRows($event->getLimit()); $solrResult = $client->select($query); $event->items = $solrResult->getIterator(); $event->count = $solrResult->getNumFound(); $event->setCustomPaginationParameter('result', $solrResult); $event->stopPropagation(); } } }
public function items(ItemsEvent $event) { if (is_array($event->target) && 2 === count($event->target) && reset($event->target) instanceof \Elastica_Searchable && end($event->target) instanceof \Elastica_Query) { list($searchable, $query) = $event->target; $query->setFrom($event->getOffset()); $query->setLimit($event->getLimit()); $results = $searchable->search($query); $event->count = $results->getTotalHits(); if ($results->hasFacets()) { $event->setCustomPaginationParameter('facets', $results->getFacets()); } $event->items = $results->getResults(); $event->stopPropagation(); } }
public function items(ItemsEvent $event) { if ($event->target instanceof Search\QueryInterface) { $searchIndex = $this->getIndexManager(); $query = $event->target; $query->setFrom($event->getOffset()); $query->setLimit($event->getLimit()); $results = $searchIndex->search($query); $event->count = $results->getTotalHits(); if ($results->hasFacets()) { $event->setCustomPaginationParameter('facets', $results->getFacets()); } $event->items = $results->getResults(); $event->stopPropagation(); } }
function items(ItemsEvent $e) { $e->setCustomPaginationParameter('test', 'val'); parent::items($e); }