Exemple #1
0
 public function testQuery()
 {
     $select = $this->indexService->select();
     $resultItem = new Item($this->entityManager);
     $searchResults = [$resultItem];
     $this->engine->expects($this->once())->method('search')->will($this->returnCallback(function (Query $query) use($searchResults) {
         return new Result($query, $searchResults, count($searchResults));
     }));
     $result = $this->indexService->query($select);
     $this->assertEquals($searchResults, $result->getElements());
     $this->assertEquals(count($searchResults), $result->getRecordsCount());
 }
 /**
  * Adjust query for tag-results-grid (tag search result grid)
  * after datasource has been built
  *
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datasource = $event->getDatagrid()->getDatasource();
     if ($datasource instanceof SearchDatasource) {
         /** @var $query Query */
         $query = new IndexerQuery($this->indexer, $this->indexer->select());
         $searchEntity = $this->requestParams->get('from', '*');
         $searchEntity = empty($searchEntity) ? '*' : $searchEntity;
         $searchString = $this->requestParams->get('search', '');
         $query->from($searchEntity)->andWhere(Indexer::TEXT_ALL_DATA_FIELD, '~', $searchString, 'text');
         $datasource->setQuery($query);
     }
 }
 /**
  * {@inheritDoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->query = new IndexerQuery($this->indexer, $this->indexer->select());
     $grid->setDatasource(clone $this);
 }