Configurar serviço Elasticsearch
Elasticsearch é um produto de código aberto que permite que você obtenha dados de qualquer fonte, qualquer formato e os pesquise e visualize em tempo real.
Para o Adobe Commerce versão 2.4.4 e posterior, consulte Configurar o serviço OpenSearch.
- O Elasticsearch faz pesquisas rápidas e avançadas em produtos do catálogo de produtos
- Os analisadores de Elasticsearch suportam vários idiomas
- Suporta palavras de interrupção e sinônimos
- A indexação não afeta os clientes até que a operação de reindexação seja concluída
Use as instruções a seguir para a configuração do serviço em ambientes Pro Integration e Starter, incluindo a ramificação master
.
Para habilitar o Elasticsearch:
-
Para projetos Iniciais, adicione o serviço
elasticsearch
ao arquivo.magento/services.yaml
com a versão do Elasticsearch e o espaço em disco alocado em MB.code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024
Para projetos Pro, você deve enviar um tíquete de Suporte da Adobe Commerce para alterar a versão do Elasticsearch nos ambientes de Preparo e Produção.
-
Definir a propriedade
relationships
no arquivo.magento.app.yaml
.code language-yaml relationships: elasticsearch: "elasticsearch:elasticsearch"
-
Adicionar, confirmar e enviar alterações de código.
code language-bash git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
Para obter informações sobre como essas alterações afetam seus ambientes, consulte Serviços.
-
Depois que o processo de implantação for concluído, use o SSH para fazer logon no ambiente remoto.
code language-bash magento-cloud ssh
-
Reindexe o índice de pesquisa do catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Limpe o cache.
code language-bash bin/magento cache:clean
services.yaml
e .magento.app.yaml
. Consulte Alterar versão de serviço para obter orientação sobre como atualizar ou rebaixar um serviço.Compatibilidade de software de Elasticsearch
Ao instalar ou atualizar seu projeto Adobe Commerce na infraestrutura em nuvem, sempre verifique a compatibilidade entre a versão do serviço Elasticsearch e o cliente PHP🔗 do Elasticsearch para Adobe Commerce.
-
Configuração pela primeira vez-Confirme se a versão do Elasticsearch especificada no arquivo
services.yaml
é compatível com o cliente Elasticsearch PHP configurado para Adobe Commerce. -
Atualização de projeto-Verifique se o cliente PHP do Elasticsearch na nova versão do aplicativo é compatível com a versão do serviço Elasticsearch instalada na infraestrutura de nuvem.
O suporte à versão do serviço e à compatibilidade do Adobe Commerce na infraestrutura em nuvem é determinado pelas versões implantadas na infraestrutura em nuvem e, às vezes, difere das versões compatíveis com implantações locais do Adobe Commerce. Consulte Versões de serviço.
Para verificar a compatibilidade de software de Elasticsearch:
-
Na estação de trabalho local, altere para o diretório do projeto.
-
Mostrar os detalhes do Elasticsearch para o ambiente ativo.
code language-bash magento-cloud relationships --property=elasticsearch
-
Como alternativa, você pode usar o SSH para fazer logon no ambiente remoto.
code language-bash magento-cloud ssh
-
Verifique a versão do pacote do Composer para
elasticsearch/elasticsearch
.code language-bash composer show elasticsearch/elasticsearch
Na resposta, verifique a versão instalada na propriedade
versions
.code language-none name : elasticsearch/elasticsearch descrip. : PHP Client for Elasticsearch keywords : client, elasticsearch, search versions : * v7.17.1 type : library license : Apache License 2.0 (Apache-2.0) (OSI approved) https://spdx.org/licenses/Apache-2.0.html#licenseText license : GNU Lesser General Public License v2.1 only (LGPL-2.1-only) (OSI approved) https://spdx.org/licenses/LGPL-2.1-only.html#licenseText homepage : source : [git] git@github.com:elastic/elasticsearch-php.git f1b8918f411b837ce5f6325e829a73518fd50367 dist : [zip] https://api.github.com/repos/elastic/elasticsearch-php/zipball/f1b8918f411b837ce5f6325e829a73518fd50367 f1b8918f411b837ce5f6325e829a73518fd50367 path : ~/vendor/elasticsearch/elasticsearch names : elasticsearch/elasticsearch
Além disso, você pode encontrar a versão do cliente PHP do Elasticsearch no arquivo
composer.lock
no diretório raiz do ambiente. -
Na linha de comando, recupere os detalhes de conexão do serviço de Elasticsearch.
code language-bash vendor/bin/ece-tools env:config:show services
Na resposta, localize o endereço IP do ponto final do serviço Elasticsearch:
code language-none | elasticsearch: | +------------------------------------------+----------------------------------------------------------------------+ | username | null | | scheme | http | | service | elasticsearch | | fragment | null | | ip | 169.254.220.11 | | hostname | dzggu33f75wi3sd24lgwtoupxm.elasticsearch.service._.magentosite.cloud | | public | false | | cluster | fo3qdoxtla4j4-master-7rqtwti | | host | elasticsearch.internal | | rel | elasticsearch | | query | | | path | null | | password | null | | type | elasticsearch:6.5 | | port | 9200 | +------------------------------------------+----------------------------------------------------------------------+
-
Recupere o serviço de Elasticsearch instalado
version:number
do ponto de extremidade de serviço.code language-bash curl -XGET <elasticsearch-service-endpoint-ip-address>:9200/
code language-json { "name" : "-AqGi9D", "cluster_name" : "elasticsearch", "cluster_uuid" : "_yze6-ywSEW1MaAF8ZPWyQ", "version" : { "number" : "6.5.4", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "82a8aa7", "build_date" : "2019-01-23T12:07:18.760675Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, " tagline" : "You Know, for Search" }
-
Verifique a compatibilidade da versão entre o serviço Elasticsearch e o cliente PHP.
Se as versões forem incompatíveis, faça uma das seguintes atualizações na configuração do seu ambiente:
-
Mude o cliente PHP Elasticsearch para uma versão compatível com a versão do serviço Elasticsearch.
code language-bash composer require "elasticsearch/elasticsearch:~<version>"
-
Altere a versão do serviço Elasticsearch no arquivo
services.yaml
para uma versão que seja compatível com o cliente PHP Elasticsearch.
-
Staging
e Production
..magento.app.yaml
e do services.yaml
e informe a versão do PHP no tíquete. Para alterações de autoatendimento na versão, extensões ou configurações do ambiente do PHP, consulte configurações do PHP em Configuração do aplicativo.Reinicie o serviço Elasticsearch
Se você precisar reiniciar o serviço Elasticsearch, entre em contato com o suporte da Adobe Commerce.
Configuração de pesquisa adicional
-
Por padrão, a configuração de pesquisa para ambientes em nuvem é gerada novamente sempre que você implanta. Você pode usar a variável de implantação
SEARCH_CONFIGURATION
para manter configurações de pesquisa personalizadas entre implantações. Consulte Implantar variáveis. -
Depois de configurar o serviço Elasticsearch para o seu projeto, use a interface do Administrador para testar a conexão de Elasticsearch e personalizar as configurações de Elasticsearch para o Adobe Commerce.
Adicionar plug-ins para o Elasticsearch
Como opção, você pode adicionar plug-ins para o Elasticsearch, adicionando a seção configuration:plugins
ao serviço Elasticsearch no arquivo .magento/services.yaml
. Por exemplo, o código a seguir habilita os plug-ins de análise ICU e Análise fonética.
elasticsearch:
type: elasticsearch:<service-version>
disk: 1024
configuration:
plugins:
- analysis-icu
- analysis-phonetic
Se você usar o plug-in de terceiros do Elastic Suite, deverá atualizar o pacote ece-tools
para a versão 2002.0.19 ou posterior.
Ao configurar o Elastic Suite, adicione as definições de configuração à variável de implantação ELASTICSUITE_CONFIGURATION
. Essa configuração salva as configurações nas implantações.
Remover plug-ins do Elasticsearch
Remover as entradas de plug-in de elasticsearch:
em .magento/services.yaml
não as desinstala ou desabilita conforme o esperado. Você deve reindexar os dados de Elasticsearch. Esse comportamento é intencional para evitar possível perda ou corrupção de dados que dependem desses plug-ins.
Para remover os plug-ins de Elasticsearch:
-
Remova as entradas do plug-in Elasticsearch do seu arquivo
.magento/services.yaml
. -
Adicionar, confirmar e enviar por push as alterações de código.
code language-bash git add .magento/services.yaml
code language-bash git commit -m "Remove Elasticsearch plugin"
code language-bash git push origin <branch-name>
-
Confirme as
.magento/services.yaml
alterações no repositório de nuvem. -
Reindexe o índice de pesquisa do catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Limpe o cache.
code language-bash bin/magento cache:clean
Solução de problemas
Consulte os seguintes artigos de suporte da Adobe Commerce para obter ajuda com a solução de problemas de Elasticsearch: