Cursos Magento

Magento 2 sem ElasticSearch. Sim, é possível.

,

Atualizado em 03 de outubro de 2023

Então você começou a instalar o Magento 2 e descobriu que é obrigado a ter o ElasticSearch instalado/disponível. Ou você quer usar aquela hospedagem de R$5,99 pra hospedar sua loja (e acha que o único problema que vai ter lá é a falta dele).

De uma forma ou de outra, agora você tem mais uma solução para o “problema”.

O ElasticSearch passou a ser obrigatório no Magento somente após a versão 2.4 e, mesmo hoje, nem todas as hospedagens especializadas em Magento oferecem tal recurso, forçando lojistas a permanecerem em versões antigas ou migrarem para outro serviço. Ou seja, uma dor de cabeça de um jeito ou outro.

A luz no fim do túnel – Suporte ao MySQL legado

A Swissuplabs – empresa fornecedora de extensões Magento – recentemente lançou uma alternativa ao ElasticSearch no Magento 2.4.

Trata-se de uma reintegração do suporte ao MySQL que existia no Magento 2.3.5, sendo implementado no 2.4. Desta forma, você pode selecionar o antigo MySQL como Motor de Busca do seu Magento ao invés de usar o ElasticSearch.

Como instalar

Cadastro e “compra”/download do módulo gratuito

Faça a “compra” do módulo gratuito neste link. Siga com o checkout e cadastro normalmente. Nenhum pagamento será exigido.

Depois de finalizado seu pedido, clique em “Activation Information” na área de conta logado. Depois clique em Activate no módulo que acabou de comprar.

Na tela seguinte, digite o domínio da loja que está ativando. Mesmo que seja um domínio de testes como firestore.test.

A chave que você usará no próximo passo é exibida no topo da página em Identity key. Lembre que o domínio a ser ativado deve ser o mesmo configurado no base_url da loja. A inexistência deste valor, causará erro na validação da chave.

Preparando a instalação

Prepare a instalação adicionando o módulo base da swissuplabs e adicionando o repositório deles com os seguintes comandos:

composer require swissup/module-marketplace
bin/magento module:enable Swissup_Marketplace

bin/magento setup:upgrade
bin/magento marketplace:channel:enable swissuplabs

No último passo você deverá digitar sua licença (gratuita) para usar o módulo. Ela é a sua Identity key, como mencionado no parágrafo acima.

Depois instale o módulo com o comando abaixo:

bin/magento marketplace:package:require swissup/module-search-mysql-legacy

Pronto! Agora você já pode configurar o motor de busca no painel administrativo.

Opa! Mas o padrão é ElasticSearch e não consigo chegar lá. Nesse caso, use o comando bin/magento config:set catalog/search/engine 'lmysql' para ativar o suporte ao mysql legado.

Após limpar o cache do Magento, você já poderá fazer um reindex (bin/magento index:reindex) e navegar na loja novamente.

Como instalar o Magento 2.4 sem ElasticSearch

Você pode especificar os módulos que serão desabilitados durante o comando setup:install especificando o parâmetro --disable-modules.

Sendo assim, ao executar o comando bin/magento setup:install, basta listar os módulos que deseja desabilitar:

bin/magento setup:install --disable-modules=Magento_InventoryElasticsearch,Magento_Elasticsearch7,Magento_Elasticsearch6,Magento_Elasticsearch

Note que o comando acima não está completo. Ele apenas mostra um exemplo do que deve ser adicionado ao instalar o Magento desabilitando módulos específicos. Veja Instalando o Magento 2: rápido e fácil para ver o comando completo e alguns exemplos de uso. Com isso, apenas adicione o --disable-modules como mostrado aqui.

Para verificar qual motor de busca está utilizando

Digite bin/magento config:show catalog/search/engine.

Conclusão

Testamos o módulo acima na Fire Store, com Magento 2.4.1. Após a instalação e configuração como descrito aqui, pude desligar o ElasticSearch e navegar normalmente na loja. As páginas de catálogo, busca e reindex funcionaram normalmente. O Magento se comportou de forma idêntica ao que estamos acostumados quando usando ElasticSearch, embora um pouco mais lento na busca e navegação de catálogo.

Não cheguei a navegar no código propriamente dito para ver se havia algo suspeito ou mal feito, embora a swissuplabs já faça parte do cotidiano há muitos anos. Arriscaria dizer que fizeram um bom trabalho mesmo sem olhar o que estaria por trás disso tudo.

De forma geral, não recomendo que você tente não usar o ElasticSearch. Ele traz uma série de benefícios para sua busca, performance do catálogo, e certamente haverão muitos outros benefícios em novas versões do Magento. Acredito que o uso desta solução seja válido apenas como paliativo e não como forma de manter seu projeto em um ambiente que não foi construído pra ele. Além disso, novas versões do Magento podem trazer recursos que o módulo ainda não está preparado para lidar, quebrando sua loja.

O Magento 2.4 trouxe muitas correções e melhorias de performance que vão além do ElasticSearch e que valem a pena. Se migrar para a nova versão requer uma mudança de provedor de hospedagem, faça isso. Se realmente não é possível nesse momento, siga com a solução acima.

Links úteis:

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/magento-2_4-sem-elasticsearch-sim-e-possivel/"]