src/Platform/EventListener/PopulateEventListener.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Platform\EventListener;
  4. use Elastica\Index\Settings;
  5. use FOS\ElasticaBundle\Event\PostIndexPopulateEvent;
  6. use FOS\ElasticaBundle\Event\PreIndexPopulateEvent;
  7. use FOS\ElasticaBundle\Index\IndexManager;
  8. class PopulateEventListener
  9. {
  10.     public function __construct(
  11.         private readonly IndexManager $indexManager,
  12.     ) {
  13.     }
  14.     public function preIndexPopulate(PreIndexPopulateEvent $event): void
  15.     {
  16.         $index $this->indexManager->getIndex($event->getIndex());
  17.         $settings $index->getSettings();
  18.         $settings->setRefreshInterval('-1');
  19.     }
  20.     public function postIndexPopulate(PostIndexPopulateEvent $event): void
  21.     {
  22.         $index $this->indexManager->getIndex($event->getIndex());
  23.         $index->getClient()->request('_forcemerge?max_num_segments=5''POST');
  24.         $index->getSettings()->setRefreshInterval(Settings::DEFAULT_REFRESH_INTERVAL);
  25.     }
  26. }