diff --git a/lib/Alchemy/Phrasea/SearchEngine/Elastic/IndexerSubscriber.php b/lib/Alchemy/Phrasea/SearchEngine/Elastic/IndexerSubscriber.php index 1f7c532749..cd9f7f308d 100644 --- a/lib/Alchemy/Phrasea/SearchEngine/Elastic/IndexerSubscriber.php +++ b/lib/Alchemy/Phrasea/SearchEngine/Elastic/IndexerSubscriber.php @@ -16,6 +16,7 @@ use Alchemy\Phrasea\Core\Event\Collection\CollectionEvents; use Alchemy\Phrasea\Core\Event\Record\RecordDeletedEvent; use Alchemy\Phrasea\Core\Event\Record\RecordEvent; use Alchemy\Phrasea\Core\Event\Record\RecordEvents; +use Alchemy\Phrasea\Core\Event\Record\RecordSubDefinitionCreatedEvent; use Alchemy\Phrasea\Core\Event\Record\Structure\RecordStructureEvent; use Alchemy\Phrasea\Core\Event\Record\Structure\RecordStructureEvents; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\RecordQueuer; @@ -67,6 +68,9 @@ class IndexerSubscriber implements EventSubscriberInterface public function onRecordChange(RecordEvent $event) { + if ($event instanceof RecordSubDefinitionCreatedEvent && $event->getSubDefinitionName() !== 'thumbnail') { + return; + } $record = $event->getRecord(); $this->indexer->indexRecord($record); } diff --git a/lib/Alchemy/Phrasea/TaskManager/Job/SubdefsJob.php b/lib/Alchemy/Phrasea/TaskManager/Job/SubdefsJob.php index c587758638..82eb1facf4 100644 --- a/lib/Alchemy/Phrasea/TaskManager/Job/SubdefsJob.php +++ b/lib/Alchemy/Phrasea/TaskManager/Job/SubdefsJob.php @@ -75,6 +75,7 @@ class SubdefsJob extends AbstractJob $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt->closeCursor(); + $i = 0; foreach ($rs as $row) { if (!$this->isStarted()) { break; @@ -106,7 +107,14 @@ class SubdefsJob extends AbstractJob $stmt->closeCursor(); unset($record); + $i++; + + if ($i % 5 === 0) { + $app['elasticsearch.indexer']->flushQueue(); + } } } + + $app['elasticsearch.indexer']->flushQueue(); } } diff --git a/lib/classes/record/adapter.php b/lib/classes/record/adapter.php index 7787193d80..537a803a81 100644 --- a/lib/classes/record/adapter.php +++ b/lib/classes/record/adapter.php @@ -29,7 +29,6 @@ use Doctrine\ORM\EntityManager; use Doctrine\Common\Collections\ArrayCollection; use MediaVorus\MediaVorus; use Rhumsaa\Uuid\Uuid; -use Alchemy\Phrasea\Status\StatusStructure; use Alchemy\Phrasea\Model\RecordInterface; use Symfony\Component\HttpFoundation\File\File as SymfoFile; use Alchemy\Phrasea\Core\PhraseaTokens;