/** * Deletes/remaps an index type, populates it, and refreshes the index. * * @param OutputInterface $output * @param string $index * @param string $type * @param boolean $reset * @param array $options */ private function populateIndexType(OutputInterface $output, $index, $type, $reset, $options) { $event = new TypePopulateEvent($index, $type, $reset, $options); $this->dispatcher->dispatch(TypePopulateEvent::PRE_TYPE_POPULATE, $event); if ($event->isReset()) { $output->writeln(sprintf('<info>Resetting</info> <comment>%s/%s</comment>', $index, $type)); $this->resetter->resetIndexType($index, $type); } $provider = $this->providerRegistry->getProvider($index, $type); $loggerClosure = $this->progressClosureBuilder->build($output, 'Populating', $index, $type); $provider->populate($loggerClosure, $event->getOptions()); $this->dispatcher->dispatch(TypePopulateEvent::POST_TYPE_POPULATE, $event); $this->refreshIndex($output, $index, false); }
/** * Deletes/remaps an index type, populates it, and refreshes the index. * * @param OutputInterface $output * @param string $index * @param string $type * @param boolean $reset * @param array $options */ private function populateIndexType(OutputInterface $output, $index, $type, $reset, $options) { if ($reset) { $output->writeln(sprintf('<info>Resetting</info> <comment>%s/%s</comment>', $index, $type)); $this->resetter->resetIndexType($index, $type); } $loggerClosure = function ($message) use($output, $index, $type) { $output->writeln(sprintf('<info>Populating</info> %s/%s, %s', $index, $type, $message)); }; $provider = $this->providerRegistry->getProvider($index, $type); $provider->populate($loggerClosure, $options); $output->writeln(sprintf('<info>Refreshing</info> <comment>%s</comment>', $index)); $this->indexManager->getIndex($index)->refresh(); }