Configuration du service Elasticsearch

Elasticsearch est un produit open source qui vous permet d’extraire des données de n’importe quelle source, n’importe quel format, de les rechercher et de les visualiser en temps réel.

WARNING
Elasticsearch 7.11 et versions ultérieures ne sont pas pris en charge pour Adobe Commerce sur l’infrastructure cloud. Les versions 2.3.7-p3, 2.4.3-p2 et 2.4.4 et ultérieures d’Adobe Commerce prennent en charge le service OpenSearch. Les installations sur site continuent de prendre en charge les Elasticsearch.

Pour les versions 2.4.4 et ultérieures d’Adobe Commerce, voir Configuration du service OpenSearch.

  • Elasticsearch effectue des recherches rapides et avancées sur les produits du catalogue de produits.
  • Les analyseurs Elasticsearch prennent en charge plusieurs langues
  • Prend en charge les mots vides et les synonymes
  • L’indexation n’affecte pas les clients tant que l’opération de réindexation n’est pas terminée.
TIP
Adobe recommande de toujours configurer Elasticsearch pour votre projet d’infrastructure cloud Adobe Commerce, même si vous envisagez de configurer un outil de recherche tiers pour votre application Adobe Commerce. La configuration de Elasticsearch fournit une option de secours en cas d’échec de l’outil de recherche tiers.

Suivez les instructions suivantes pour la configuration du service dans les environnements Pro Integration et les environnements Starter, y compris la master branche.

NOTE
Envoi d’un ticket d’assistance Adobe Commerce pour modifier la configuration du service dans les environnements de production et d’évaluation.

Pour activer l’Elasticsearch:

  1. Pour les projets de démarrage, ajoutez le elasticsearch au service .magento/services.yaml avec la version Elasticsearch et espace disque alloué en Mo.

    code language-yaml
    elasticsearch:
        type: elasticsearch:<version>
        disk: 1024
    

    Pour les projets Pro, vous devez envoyer un ticket d’assistance Adobe Commerce pour modifier la version Elasticsearch dans les environnements d’évaluation et de production.

  2. Définissez la variable relationships dans la propriété .magento.app.yaml fichier .

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. Ajout, validation et modification du code push.

    code language-bash
    git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
    

    Pour plus d’informations sur la façon dont ces modifications affectent vos environnements, voir Services.

  4. Une fois le processus de déploiement terminé, utilisez SSH pour vous connecter à l’environnement distant.

    code language-bash
    magento-cloud ssh
    
  5. Réindexez l’index de recherche catalogue.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Nettoyez le cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Après la configuration initiale du service, vous pouvez modifier la version logicielle d’un service installé en mettant à jour la variable services.yaml et .magento.app.yaml fichiers de configuration. Voir Modification de la version du service pour obtenir des conseils sur la mise à niveau ou la mise à niveau d’un service.

Compatibilité des logiciels Elasticsearch

Lorsque vous installez ou mettez à niveau votre projet Adobe Commerce sur une infrastructure cloud, vérifiez toujours la compatibilité entre la version du service Elasticsearch et le ELASTICSEARCH PHP client pour Adobe Commerce.

  • Première configuration-Confirmez que la version de l’Elasticsearch spécifiée dans la variable services.yaml est compatible avec le client PHP Elasticsearch configuré pour Adobe Commerce.

  • Mise à niveau du projet-Vérifiez que le client PHP Elasticsearch dans la nouvelle version de l’application est compatible avec la version de service Elasticsearch installée sur l’infrastructure cloud.

La prise en charge de la version du service et de la compatibilité pour Adobe Commerce sur l’infrastructure cloud est déterminée par les versions déployées sur l’infrastructure cloud et diffère parfois des versions prises en charge par les déploiements sur site d’Adobe Commerce. Voir Versions de service.

Pour vérifier la compatibilité des logiciels Elasticsearch:

  1. Sur votre poste de travail local, modifiez le répertoire de votre projet.

  2. Affichez les détails de l’Elasticsearch pour l’environnement actif.

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. Vous pouvez également utiliser SSH pour vous connecter à l’environnement distant.

    code language-bash
    magento-cloud ssh
    
  4. Vérifiez la version du package du compositeur pour elasticsearch/elasticsearch.

    code language-bash
    composer show elasticsearch/elasticsearch
    

    Dans la réponse, vérifiez la version installée dans la variable versions .

    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
    

    Vous trouverez également la version du client PHP Elasticsearch dans la section composer.lock dans le répertoire racine de l’environnement.

  5. Dans la ligne de commande, récupérez les détails de connexion au service Elasticsearch.

    code language-bash
    vendor/bin/ece-tools env:config:show services
    

    Dans la réponse, recherchez l’adresse IP du point de terminaison du service 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. Récupération du service Elasticsearch installé version:number à partir du point d’entrée de service.

    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. Vérifiez la compatibilité des versions entre le service Elasticsearch et le client PHP.

    Si les versions sont incompatibles, effectuez l’une des mises à jour suivantes sur la configuration de votre environnement :

    • Remplacez le client PHP Elasticsearch par une version compatible avec la version du service Elasticsearch.

      code language-bash
      composer require "elasticsearch/elasticsearch:~<version>"
      
    • Modifiez la version du service Elasticsearch dans le services.yaml vers une version compatible avec le client PHP Elasticsearch.

TIP
Pour les projets Pro, vous devez envoyer un ticket d’assistance Adobe Commerce ; pour installer ou mettre à jour services in Staging et Production environnements uniquement.
Indiquez les modifications de service nécessaires, en incluant votre mise à jour .magento.app.yaml et services.yaml et indiquez la version PHP dans le ticket. Pour les modifications en libre-service apportées à la version PHP, aux extensions ou aux paramètres d’environnement, voir paramètres PHP in Configuration des applications.
Pour les modifications apportées à un live Environnement de production (Pro uniquement), vous devez fournir un préavis d’au moins 48 heures pour permettre à l’équipe chargée de l’infrastructure cloud de disposer de suffisamment de temps pour mobiliser les ressources et réaliser une mise à niveau sécurisée.

Redémarrer le service Elasticsearch

Si vous devez redémarrer le Elasticsearch , vous devez contacter l’assistance d’Adobe Commerce.

Configuration de recherche supplémentaire

  • Par défaut, la configuration de recherche des environnements Cloud se régénère chaque fois que vous déployez. Vous pouvez utiliser la variable SEARCH_CONFIGURATION déployer pour conserver les paramètres de recherche personnalisés entre les déploiements. Voir Déploiement de variables.

  • Après avoir configuré le service Elasticsearch pour votre projet, utilisez l’interface utilisateur d’administration pour tester la connexion Elasticsearch et personnaliser les paramètres Elasticsearch pour Adobe Commerce.

Ajout de modules externes pour Elasticsearch

Vous pouvez éventuellement ajouter des modules externes pour l’Elasticsearch en ajoutant la variable configuration:plugins au service Elasticsearch dans la section .magento/services.yaml fichier . Par exemple, le code suivant active les modules complémentaires Analyse de l’ICU et Analyse phonétique.

elasticsearch:
    type: elasticsearch:<service-version>
    disk: 1024
    configuration:
        plugins:
            - analysis-icu
            - analysis-phonetic

Si vous utilisez le module externe tiers d’Elastic Suite, vous devez mettre à jour la variable ece-tools package vers la version 2002.0.19 ou ultérieure.
Lors de la configuration d’Elastic Suite, ajoutez les paramètres de configuration à la ELASTICSUITE_CONFIGURATION Variable de déploiement. Cette configuration enregistre les paramètres pour tous les déploiements.

Suppression de modules externes pour Elasticsearch

Suppression des entrées du module externe de elasticsearch: in .magento/services.yaml ne les désinstalle pas ou ne les désactive pas comme prévu. Vous devez réindexer vos données Elasticsearch. Ce comportement est intentionnel afin d’empêcher toute perte ou corruption de données qui dépend de ces modules externes.

Pour supprimer des modules externes Elasticsearch:

  1. Supprimez les entrées de module externe Elasticsearch de vos .magento/services.yaml fichier .

  2. Ajoutez, validez et poussez vos modifications de code.

    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. Validez la variable .magento/services.yaml modifications apportées à votre référentiel Cloud.

  4. Réindexez l’index de recherche catalogue.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. Nettoyez le cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Pour plus d’informations sur l’utilisation ou le dépannage du module externe d’Elastic Suite avec Adobe Commerce, voir la section Documentation d’Elastic Suite.

Dépannage

Pour obtenir de l’aide sur la résolution des problèmes des Elasticsearch, reportez-vous aux articles suivants du support Adobe Commerce :

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