Configurar serviço Elasticsearch

Elasticsearch O é um produto de código aberto que permite pegar dados de qualquer fonte, qualquer formato e pesquisá-los e visualizá-los em tempo real.

WARNING
O Elasticsearch 7.11 e posterior não é compatível com o Adobe Commerce na infraestrutura em nuvem. As versões do Adobe Commerce 2.3.7-p3, 2.4.3-p2 e 2.4.4 e posteriores são compatíveis com o serviço OpenSearch. As instalações locais continuam a suportar o Elasticsearch.

Para a versão 2.4.4 e posterior do Adobe Commerce, 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
TIP
A Adobe recomenda que você sempre configure o Elasticsearch para seu projeto do Adobe Commerce na infraestrutura em nuvem, mesmo que planeje configurar uma ferramenta de pesquisa de terceiros para seu aplicativo do Adobe Commerce. A configuração do Elasticsearch fornece uma opção de fallback caso a ferramenta de pesquisa de terceiros falhe.

Use as instruções a seguir para configurar o serviço em ambientes Pro Integration e Starter, incluindo o master filial.

NOTE
Enviar um tíquete de suporte da Adobe Commerce para alterar a configuração do serviço em ambientes de produção e preparo profissionais.

Para ativar o Elasticsearch:

  1. Para projetos iniciais, adicione o elasticsearch serviço para o .magento/services.yaml arquivo com a versão do Elasticsearch e 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.

  2. Defina o relationships propriedade na .magento.app.yaml arquivo.

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. 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.

  4. 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
    
  5. Reindexe o índice de pesquisa do catálogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Limpe o cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Após a configuração inicial do serviço, é possível alterar a versão do software de um serviço instalado atualizando o services.yaml e .magento.app.yaml arquivos de configuração. Consulte Alterar versão do 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 ELASTICSEARCH PHP cliente para Adobe Commerce.

  • Primeira configuração-Confirme se a versão do Elasticsearch especificada no services.yaml O arquivo é compatível com o cliente Elasticsearch PHP configurado para Adobe Commerce.

  • Atualização do projeto-Verifique se o cliente PHP 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 do Elasticsearch:

  1. Na estação de trabalho local, altere para o diretório do projeto.

  2. Mostrar os detalhes do Elasticsearch para o ambiente ativo.

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. Como alternativa, você pode usar o SSH para fazer logon no ambiente remoto.

    code language-bash
    magento-cloud ssh
    
  4. 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 no versions propriedade.

    code language-terminal
    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 composer.lock no diretório raiz do ambiente.

  5. 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-terminal
    | 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                                                                 |
    +------------------------------------------+----------------------------------------------------------------------+
    
  6. Recuperar 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-terminal
    {
       "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"
    }
    
  7. 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 de Elasticsearch no services.yaml para uma versão compatível com o cliente PHP Elasticsearch.

TIP
Para projetos Pro, você deve enviar um tíquete de suporte da Adobe Commerce para instalar ou atualizar serviços in Staging e Production somente ambientes.
Indique as alterações de serviço necessárias, inclua as atualizações .magento.app.yaml e services.yaml e indique a versão do PHP no ticket. Para alterações de autoatendimento na versão, extensões ou configurações do ambiente do PHP, consulte Configurações do PHP in Configuração do aplicativo.
Para alterações em um live Ambiente de produção (Somente Pro), você deve fornecer um aviso mínimo de 48 horas para permitir que a equipe de infraestrutura da nuvem tenha tempo suficiente para realizar o marshaling dos recursos e realizar uma atualização segura.

Reinicie o serviço Elasticsearch

Se precisar reiniciar o Elasticsearch serviço, 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 o SEARCH_CONFIGURATION implante a variável para manter as configurações de pesquisa personalizadas entre as 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

Opcionalmente, é possível adicionar plug-ins para o Elasticsearch, adicionando o configuration:plugins seção para o serviço Elasticsearch no .magento/services.yaml arquivo. 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 ece-tools pacote para a versão 2002.0.19 ou posterior.
Ao configurar o Elastic Suite, adicione as definições de configuração ao ELASTICSUITE_CONFIGURATION implantar variável. Essa configuração salva as configurações nas implantações.

Remover plug-ins do Elasticsearch

Remover as entradas de plug-in do elasticsearch: in .magento/services.yaml O não os desinstala ou desativa 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 do Elasticsearch:

  1. Remova as entradas do plug-in Elasticsearch do seu .magento/services.yaml arquivo.

  2. 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>
    
  3. Confirme o .magento/services.yaml alterações no seu repositório de nuvem.

  4. Reindexe o índice de pesquisa do catálogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. Limpe o cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Para obter detalhes sobre como usar ou solucionar problemas do plug-in Elastic Suite com o Adobe Commerce, consulte a Documentação do Elastic Suite.

Solução de problemas

Consulte os seguintes artigos de suporte da Adobe Commerce para obter ajuda com a solução de problemas de Elasticsearch:

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26