Cursos Magento

Como configurar o ElasticSearch no Magento 2.4

, ,

Atualizado em 09 de julho de 2021

Uma das grandes novidades do Magento 2.4 é o suporte à novas versões do ElasticSearch. Não apenas o suporte, como a substituição do MySQL por ele quando o assunto é busca de produtos no front end.

Se você já teve a oportunidade de brincar 2 minutos com ElasticSearch, sabe o benefício trazido pela mudança. Além de ser super rápido, ele foi criado para este fim, e nos poupa e uma série de dores de cabeça no que diz respeito a otimizar a busca de um e-commerce.

No entanto para aqueles que estão tendo o primeiro contato com o Magento, ou tentando instalá-lo pela primeira vez, este será mais um motivo para desistir. Mas não precisa ser assim.

Instalando ElasticSearch

O ElasticSearch está disponível para praticamente todas as plataformas, e a forma de instalá-lo muda para cada uma.

Deixarei apenas os links para cada plataforma aqui. Se preferir, veja direto na página de instalação no site oficial.


No Grupo exclusivo de alunos do Magento 2: O Curso, o Felipe deixou ainda mais instruções. Se você é aluno(a) clique aqui para ver as instruções completas no post dele.


Testando a instalação

Se você instalou o ElasticSearch no ambiente local ou no mesmo servidor, sem modificar as portas, ele estará disponível em localhost na porta 9200.

Você pode acessar no seu browser http://localhost:9200 ou digitar curl http://localhost:9200. Se o Elastic Search estiver instalado corretamente, terá o retorno abaixo:

{
  "name" : "a67d1eb4065d",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "ml1fTwIxTXmN-XpLSwwrtg",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Retorno cURL

Retorno no Browser

Configurando no Magento

O Magento tentará se conectar em localhost na porta 9200 por padrão. Se tudo der certo, nada precisa ser feito para configurar o Magento.

No entanto, se você configurou o ElasticSearch em uma porta diferente, com SSL, ou em um URL diferente de localhost, você precisará informar isso para o Magento de outras formas.

Via Painel

Em Stores > Configuration > Catalog > Catalog > Catalog Search (Lojas > Configurações > Catalogo > Catalogo > Busca do Catalogo), você encontrará as configurações do Elastic Search como mostrado abaixo.

Configurações do ElasticSearch no painel do Magento 2

Um botão de “Testar” fica localizado logo abaixo dos campos. Use-o. 🙂

Via bin/magento

Você pode usar o bin/magento config:set para realizar configurações pontuais no seu ElasticSearch, conforme mostrado abaixo.

bin/magento config:set catalog/search/elasticsearch7_server_hostname localhost

Outras configurações possíveis são:

  • catalog/search/elasticsearch7_server_hostname
  • catalog/search/elasticsearch7_server_port
  • catalog/search/elasticsearch7_enable_auth
  • catalog/search/elasticsearch7_server_timeout
  • catalog/search/elasticsearch7_minimum_should_match

Válidos para os campos das imagens acima respectivamente.

❗️Note que o nome dos parâmetros são */elasticsearch7_* . O número 7 no nome dos campos de config só foram adicionados após o Magento 2.4. Se você usa uma versão anterior, remova o 7 do nome dos campos e certifique-se que seu Magento tem suporte a ElasticSearch.

Durante a instalação

Caso queira especificar valores diferentes dos que o Magento utiliza ao instalar o Magento 2.4 (ou superior), você pode fazê-lo passando os parâmetros da seguinte forma:

--elasticsearch-host=ELASTICSEARCH-HOST                                                    Elasticsearch server host.
--elasticsearch-port=ELASTICSEARCH-PORT                                                    Elasticsearch server port.
--elasticsearch-enable-auth=ELASTICSEARCH-ENABLE-AUTH                                      Set to 1 to enable authentication. (default is 0, disabled)
--elasticsearch-username=ELASTICSEARCH-USERNAME                                            Elasticsearch username. Only applicable if HTTP auth is enabled
--elasticsearch-password=ELASTICSEARCH-PASSWORD                                            Elasticsearch password. Only applicable if HTTP auth is enabled
--elasticsearch-index-prefix=ELASTICSEARCH-INDEX-PREFIX                                    Elasticsearch index prefix.
--elasticsearch-timeout=ELASTICSEARCH-TIMEOUT                                              Elasticsearch server timeout.

Você pode obter uma versão mais amigável que esta simplesmente digitando bin/magento setup:install --help.

Considerações

Após configurar o ElasticSearch é necessário fazer o reindex com bin/magento indexer:reindex. E assim como muitos outros recursos, é imprescindível que seu cron esteja configurado corretamente.

Em um dos testes que fiz, o Magento não conseguia popular o ElasticSearch pois um módulo de terceiros havia criado um atributo do tipo texto (text) marcado como “utilizado na navegação em camada”. Por conta disso, nenhum produto era exibido nas páginas de categoria ou busca. Verifique os logs de erro do Magento ao realizar o reindex caso tenha problemas semelhantes.

Alternativa sem ElasticSearch

Se ElasticSearch realmente estiver fora de cogitação pra você, talvez queira ver como usar o Magento 2.4 sem ElasticSearch. Sim, é possível. Mas pouco recomendado.

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

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/configurando-elasticsearch/"]