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();
     }
 }
Beispiel #5
0
 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);
 }