Einrichten des Elasticsearch-Service

Elasticsearch ist ein Open-Source-Produkt, mit dem Sie Daten aus beliebigen Quellen und Formaten in Echtzeit suchen und visualisieren können.

WARNING
Elasticsearch 7.11 und höher wird für Adobe Commerce in Cloud-Infrastrukturen nicht unterstützt. Die Adobe Commerce-Versionen 2.3.7-p3, 2.4.3-p2 und 2.4.4 und höher unterstützen den OpenSearch-Service. Die lokalen Installationen unterstützen weiterhin das Elasticsearch.

Informationen zu Adobe Commerce Version 2.4.4 und höher finden Sie unter Einrichten des OpenSearch-Service.

  • Elasticsearch führt schnelle und erweiterte Suchen nach Produkten im Produktkatalog durch
  • Elasticsearch Analyzer unterstützen mehrere Sprachen
  • Unterstützt Stoppwörter und Synonyme
  • Die Indizierung wirkt sich erst dann auf Kunden aus, wenn der Neuindizierungsvorgang abgeschlossen ist
TIP
Adobe empfiehlt, immer Elasticsearch für Ihr Adobe Commerce on Cloud Infrastructure-Projekt einzurichten, auch wenn Sie ein Drittanbieter-Suchwerkzeug für Ihr Adobe Commerce-Programm konfigurieren möchten. Das Einrichten von Elasticsearch bietet eine Fallback-Option für den Fall, dass das Such-Tool eines Drittanbieters fehlschlägt.

Verwenden Sie die folgenden Anweisungen für die Einrichtung des Services in Pro Integration-Umgebungen und Starter-Umgebungen, einschließlich der master.

NOTE
Senden eines Adobe Commerce Support-Tickets um die Service-Konfiguration in Pro-Produktions- und Staging-Umgebungen zu ändern.

So aktivieren Sie Elasticsearch:

  1. Fügen Sie für Einstiegsprojekte den elasticsearch-Service zur .magento/services.yaml hinzu, wobei die Elasticsearch-Version und der zugewiesene Speicherplatz in MB angegeben werden.

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

    Bei Pro-Projekten müssen Sie ein Adobe Commerce-Support-Ticket einreichen, um die Elasticsearch-Version in der Staging- und Produktionsumgebung zu ändern.

  2. Legen Sie die relationships-Eigenschaft in der .magento.app.yaml fest.

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. Code-Änderungen hinzufügen, übertragen und per Push übertragen.

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

    Informationen darüber, wie sich diese Änderungen auf Ihre Umgebungen auswirken, finden Sie unter Services.

  4. Verwenden Sie nach Abschluss des Bereitstellungsprozesses SSH, um sich bei der Remote-Umgebung anzumelden.

    code language-bash
    magento-cloud ssh
    
  5. Indizieren Sie den Katalogsuchindex neu.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Reinigen Sie den Cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Nach der Ersteinrichtung des Service können Sie die Softwareversion für einen installierten Service ändern, indem Sie die services.yaml und .magento.app.yaml Konfigurationsdateien aktualisieren. Unter Ändern der Service-Version finden Sie Anleitungen zum Aktualisieren oder Herunterstufen eines Services.

Kompatibilität der Elasticsearch-Software

Wenn Sie Ihr Adobe Commerce in einem Cloud-Infrastrukturprojekt installieren oder aktualisieren, überprüfen Sie immer die Kompatibilität zwischen der Elasticsearch-Service-Version und dem Elasticsearch PHP-Client für Adobe Commerce.

  • Erstmaliges Setup-Vergewissern Sie sich, dass die in der services.yaml angegebene Elasticsearch-Version mit dem für Adobe Commerce konfigurierten Elasticsearch PHP-Client kompatibel ist.

  • Projekt-Upgrade-Überprüfen Sie, ob der Elasticsearch-PHP-Client in der neuen Anwendungsversion mit der Elasticsearch-Service-Version kompatibel ist, die in der Cloud-Infrastruktur installiert ist.

Die Unterstützung der Service-Version und der Kompatibilität für Adobe Commerce in der Cloud-Infrastruktur wird von den Versionen bestimmt, die in der Cloud-Infrastruktur bereitgestellt werden, und unterscheidet sich manchmal von den Versionen, die von Adobe Commerce On-Premise-Bereitstellungen unterstützt werden. Siehe Service-Versionen.

So überprüfen Sie die Kompatibilität der Elasticsearch-Software:

  1. Wechseln Sie auf Ihrer lokalen Workstation in Ihr Projektverzeichnis.

  2. Elasticsearch-Details für die aktive Umgebung anzeigen.

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. Alternativ können Sie SSH verwenden, um sich bei der Remote-Umgebung anzumelden.

    code language-bash
    magento-cloud ssh
    
  4. Überprüfen Sie die Version des Composer-Pakets auf elasticsearch/elasticsearch.

    code language-bash
    composer show elasticsearch/elasticsearch
    

    Überprüfen Sie in der Antwort die installierte Version in der Eigenschaft 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
    

    Außerdem finden Sie die Elasticsearch-PHP-Client-Version in der composer.lock-Datei im Umgebungsstammverzeichnis.

  5. Rufen Sie in der Befehlszeile die Verbindungsdetails des Elasticsearch-Services ab.

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

    Suchen Sie in der Antwort die IP-Adresse für den Endpunkt des Elasticsearch-Services:

    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                                                                 |
    +------------------------------------------+----------------------------------------------------------------------+
    
  6. Rufen Sie die installierte Elasticsearch-Service-version:number vom Service-Endpunkt ab.

    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"
    }
    
  7. Überprüfen Sie die Versionskompatibilität zwischen dem Elasticsearch-Service und dem PHP-Client.

    Wenn die Versionen nicht kompatibel sind, führen Sie eine der folgenden Aktualisierungen an Ihrer Umgebungskonfiguration durch:

    • Ändern Sie den Elasticsearch-PHP-Client auf eine Version, die mit der Elasticsearch-Service-Version kompatibel ist.

      code language-bash
      composer require "elasticsearch/elasticsearch:~<version>"
      
    • Ändern Sie die Version des Elasticsearch-Dienstes in der Datei services.yaml in eine Version, die mit dem PHP-Client von Elasticsearch kompatibel ist.

TIP
Bei Pro-Projekten müssen Sie ein Adobe Commerce-Support-Ticket einreichen um Services nur in Staging und Production zu installieren oder zu aktualisieren.
Geben Sie an, welche Service-Änderungen erforderlich sind, schließen Sie Ihre aktualisierten .magento.app.yaml- und services.yaml-Dateien ein und geben Sie die PHP-Version im Ticket an. Informationen zu Self-Service-Änderungen an PHP-Versionen, Erweiterungen oder Umgebungseinstellungen finden Sie unter PHP-Einstellungen unter Anwendungskonfiguration.
Bei Änderungen an einer Live-Produktionsumgebung nur Pro ist eine Vorankündigung von mindestens 48 Stunden erforderlich. Dadurch hat das Cloud-Infrastruktur-Team genügend Zeit, Ressourcen zu mobilisieren und ein sicheres Upgrade durchzuführen. Die Kündigungsfrist beginnt, wenn das Infrastruktur-Team die Anfrage bestätigt und das Upgrade plant, mit Ausnahme der Wochenenden. Damit beispielsweise Service-Upgrades an einem Montag abgeschlossen werden, muss bis Mittwoch eine Bestätigung des geplanten Upgrades empfangen werden. In Spitzenzeiten kann die Verarbeitung Ihrer Anfrage länger dauern.

Elasticsearch-Service neu starten

Wenn Sie den Elasticsearch-Service neu starten müssen, wenden Sie sich an den Adobe Commerce-Support.

Zusätzliche Suchkonfiguration

  • Standardmäßig wird die Suchkonfiguration für Cloud-Umgebungen bei jeder Bereitstellung neu generiert. Sie können die Variable SEARCH_CONFIGURATION-Bereitstellung verwenden, um benutzerdefinierte Sucheinstellungen zwischen Bereitstellungen beizubehalten. Siehe Bereitstellen von Variablen.

  • Nachdem Sie den Elasticsearch-Service für Ihr Projekt eingerichtet haben, verwenden Sie die Admin-Benutzeroberfläche, um die Elasticsearch-Verbindung zu testen und Elasticsearch-Einstellungen für Adobe Commerce anzupassen.

Hinzufügen von Plug-ins für Elasticsearch

Optional können Sie Plug-ins für Elasticsearch hinzufügen, indem Sie den configuration:plugins Abschnitt zum Elasticsearch-Service in der .magento/services.yaml hinzufügen. Beispielsweise aktiviert der folgende Code die Plug-ins für die ICU-Analyse und die phonetische Analyse .

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

Wenn Sie das Elastic Suite-Drittanbieter-Plug-in verwenden, müssen Sie das ece-tools-Paket aktualisieren auf Version 2002.0.19 oder höher.
Fügen Sie beim Einrichten von Elastic Suite die Konfigurationseinstellungen zur ELASTICSUITE_CONFIGURATION Bereitstellungsvariablen hinzu. Diese Konfiguration speichert die Einstellungen in allen Bereitstellungen.

Plug-ins für Elasticsearch entfernen

Wenn Sie die Plug-in-Einträge aus elasticsearch: in .magento/services.yaml entfernen, werden sie nicht wie erwartet deinstalliert oder deaktiviert. Sie müssen Ihre Elasticsearch-Daten neu indizieren. Dieses Verhalten ist beabsichtigt, einen möglichen Verlust oder eine Beschädigung von Daten zu verhindern, die von diesen Plug-ins abhängen.

So entfernen Sie Elasticsearch-Plug-ins:

  1. Entfernen Sie die Elasticsearch-Plug-in-Einträge aus Ihrer .magento/services.yaml.

  2. Code-Änderungen hinzufügen, übertragen und per Push übertragen.

    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. Übertragen Sie die .magento/services.yaml Änderungen in Ihr Cloud-Repository.

  4. Indizieren Sie den Katalogsuchindex neu.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. Reinigen Sie den Cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Weitere Informationen zur Verwendung oder Fehlerbehebung beim Elastic Suite-Plug-in mit Adobe Commerce finden Sie unter Elastic Suite-Dokumentation.

Fehlerbehebung

In den folgenden Adobe Commerce-Support-Artikeln finden Sie Hilfe bei der Fehlerbehebung bei Elasticsearch-Problemen:

recommendation-more-help