7

I tried to install Magento 2.2 EE on my local with MySQL 5.7.21 and PHP 7. On the command "bin/magento setup:install" it starts to populate the database until a point when it crashes with the following error:

   Progress: 434 / 801]
   Module 'Magento_CatalogSearch':
   Installing data...

       [LogicException]
       There is no such engine:

That's all I got. I tried to modify the table 'core_config_data' where path is 'catalog/search/engine' to 'mysql', realised that it wasn't even there, had to add it manually, but it didn't work at all, at the "bin/magento setup:upgrade" it also crashes at Magento_CatalogSearch with the same error "There is no such engine:".

Any ideas how can I get rid of this error?

6
  • which version of magento are you using ( i.e CE or EE ) ? – Naveed Asim Mar 9 '18 at 10:18
  • Is this Magento Commerce ? – vitoriodachef Mar 9 '18 at 17:21
  • @Naveed it is Magento 2 EE – E.Mayer Mar 12 '18 at 11:57
  • @vitoriodachef it is Magento 2 EE – E.Mayer Mar 12 '18 at 11:57
  • check db engine in magento.yaml / services.yaml if it is mysql or sloar/elastic search. – Naveed Asim Mar 12 '18 at 11:59
1

Try with the below 3 steps:

  1. Ignore the Magento_CatalogSearch installation during the first time

Go to app/etc/config.php and disable this module, Search for Magento_CatalogSearch and change 1 to 0.

  1. Run this SQL query after successful installation or can be done in background

UPDATE core_config_data set value = 'mysql' where path='catalog/search/engine';

  1. After installation is successful, Run the below CLI command to upgrade, flush the cache and reindex

php -f bin/magento setup:upgrade php -f bin/magento cache:flush php -f bin/magento indexer:reindex

1
  • @E.Mayer: Did you try this solution? Did you get chance to check the MySql log? – Taran Mar 13 '18 at 20:44
0

You set up a catalog search engine that does not exist at 'catalog/search/engine' in your config. See: app/code/Magento/CatalogSearch/Model/ResourceModel/EngineProvider.php

So you probably configured a search engine you did not install.

2
  • mysql was the engine, it's installed. – E.Mayer Mar 8 '18 at 9:49
  • I have never installed a search engine. But did you check if the setup string are correct? Did you set that manually or via dropdown in the backend? – steros Mar 12 '18 at 12:15
0

Searching for the log message:

/**
 * Get engine singleton
 *
 * @return EngineInterface
 */
public function get()
{
    if (!$this->engine) {
        $currentEngine = $this->scopeConfig->getValue(self::CONFIG_ENGINE_PATH, ScopeInterface::SCOPE_STORE);
        if (!isset($this->enginePool[$currentEngine])) {
            throw new \LogicException(
                'There is no such engine: ' . $currentEngine
            );
        }
        $engineClassName = $this->enginePool[$currentEngine];
...

Further up in the class there is a config constant: const CONFIG_ENGINE_PATH = 'catalog/search/engine'; Which I would look into what it is set to, most likely the search engine configured like elasticsearch is set but not available.

Also was this an upgrade from 1.x?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.