src/Aqarmap/Bundle/SearchBundle/Services/ElasticListingSearch/DefaultListingSearch.php line 36

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\SearchBundle\Services\ElasticListingSearch;
  3. use Aqarmap\Bundle\SearchBundle\ScoreContainers\ListingsScoreContainer;
  4. class DefaultListingSearch extends AbstractElasticListingSearch
  5. {
  6.     protected function getResults(int $page 1int $limit 20)
  7.     {
  8.         try {
  9.             $searchResults = [
  10.                 'featuredListings' => [],
  11.                 'searchResults' => $this->paginator,
  12.                 'searchResultsIDs' => [],
  13.             ];
  14.             $scoringContainer = new ListingsScoreContainer();
  15.             $scoreFunction $scoringContainer->score($this->getScoreSettings());
  16.             $resultsQuery $this->repository->getResultQueryWithScore($scoreFunction);
  17.             $results $this->finder->createHybridPaginatorAdapter($resultsQuery);
  18.             /** @var \Knp\Component\Pager\Pagination\PaginationInterface $pagination */
  19.             $pagination $this->paginator->paginate(
  20.                 $results,
  21.                 $page,
  22.                 $limit
  23.             );
  24.             $items $pagination->getItems();
  25.             $pagination->setItems($this->setListingsScoring($items));
  26.             $searchResults['searchResults'] = $pagination;
  27.             $searchResults['searchResultsIDs'] = $this->listingManager->getIdsFromPagination($pagination);
  28.         } catch (\Exception $e) {
  29.             $this->session->getFlashBag()->add(
  30.                 'danger',
  31.                 $this->translator->trans('layout.search_empty_results')
  32.             );
  33.             $searchResults['searchResults'] = $this->paginator->paginate([], 110);
  34.         }
  35.         return $searchResults;
  36.     }
  37. }