vendor/store.shopware.com/swagenterprisesearchplatform/src/Boosting/ElasticsearchEntitySearcherSubscriber.php line 29

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Swag\EnterpriseSearch\Boosting;
  3. use Shopware\Elasticsearch\Framework\DataAbstractionLayer\Event\ElasticsearchEntitySearcherSearchEvent;
  4. use Swag\EnterpriseSearch\Common\SesExtension;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class ElasticsearchEntitySearcherSubscriber implements EventSubscriberInterface
  7. {
  8.     /**
  9.      * @var BoostingQueryBuilder
  10.      */
  11.     private $boostingQueryBuilder;
  12.     public function __construct(
  13.         BoostingQueryBuilder $boostingQueryBuilder
  14.     ) {
  15.         $this->boostingQueryBuilder $boostingQueryBuilder;
  16.     }
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             ElasticsearchEntitySearcherSearchEvent::class => 'enhanceSearch',
  21.         ];
  22.     }
  23.     public function enhanceSearch(ElasticsearchEntitySearcherSearchEvent $event): void
  24.     {
  25.         $search $event->getSearch();
  26.         $definition $event->getDefinition();
  27.         $context $event->getContext();
  28.         $criteria $event->getCriteria();
  29.         $this->boostingQueryBuilder->addBoostingQuery($definition$criteria$search$context);
  30.         if (SesExtension::isExplanation($context)) {
  31.             $search->setExplain(true);
  32.         }
  33.     }
  34. }