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 ) ? Commented Mar 9, 2018 at 10:18
  • Is this Magento Commerce ? Commented Mar 9, 2018 at 17:21
  • @Naveed it is Magento 2 EE
    – E.Mayer
    Commented Mar 12, 2018 at 11:57
  • @vitoriodachef it is Magento 2 EE
    – E.Mayer
    Commented Mar 12, 2018 at 11:57
  • check db engine in magento.yaml / services.yaml if it is mysql or sloar/elastic search. Commented Mar 12, 2018 at 11:59

3 Answers 3

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
    Commented Mar 13, 2018 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
    Commented Mar 8, 2018 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
    Commented Mar 12, 2018 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 and acknowledge you have read our privacy policy.

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