/** * @param \Magento\Store\Model\Store $store * @return void */ private function clearIndex(\Magento\Store\Model\Store $store) { $dimensions = [$this->dimensionFactory->create(['name' => 'scope', 'value' => $store->getId()])]; $configData = $this->indexerConfig->getIndexer(FulltextIndexer::INDEXER_ID); /** @var \Magento\CatalogSearch\Model\Indexer\IndexerHandler $indexHandler */ $indexHandler = $this->indexerHandlerFactory->create(['data' => $configData]); $indexHandler->cleanIndex($dimensions); }
/** * Execute full indexation * * @return void */ public function executeFull() { $storeIds = array_keys($this->storeManager->getStores()); foreach ($storeIds as $storeId) { $dimension = $this->dimensionFactory->create(['name' => 'scope', 'value' => $storeId]); $this->indexerHandler->cleanIndex([$dimension]); $this->indexerHandler->saveIndex([$dimension], $this->fullAction->rebuildStoreIndex($storeId)); } }
/** * Execute full indexation * * @return void */ public function executeFull() { $storeIds = array_keys($this->storeManager->getStores()); /** @var IndexerHandler $saveHandler */ $saveHandler = $this->indexerHandlerFactory->create(['data' => $this->data]); foreach ($storeIds as $storeId) { $dimension = $this->dimensionFactory->create(['name' => 'scope', 'value' => $storeId]); $saveHandler->cleanIndex([$dimension]); $saveHandler->saveIndex([$dimension], $this->fullAction->rebuildStoreIndex($storeId)); } $this->fulltextResource->resetSearchResults(); $this->searchRequestConfig->reset(); }
/** * Delete search index data for store * * @param int $storeId Store View Id * @param array $productIds Product Entity Id * @return void */ protected function deleteIndex($storeId = null, $productIds = null) { $dimension = $this->dimensionFactory->create(['name' => self::SCOPE_FIELD_NAME, 'value' => $storeId]); $this->indexHandler->deleteIndex([$dimension], $this->getIterator($productIds)); }
/** * Clean search index data for store * * @param int $storeId * @return void */ protected function cleanIndex($storeId) { $dimension = $this->dimensionFactory->create(['name' => self::SCOPE_FIELD_NAME, 'value' => $storeId]); $this->indexHandler->cleanIndex([$dimension]); }