Elasticsearch-Dienst einrichten

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

WARNING
Elasticsearch 7.11 und höher wird für Adobe Commerce in der Cloud-Infrastruktur nicht unterstützt. Adobe Commerce-Versionen 2.3.7-p3, 2.4.3-p2, 2.4.4 und höher unterstützen den OpenSearch-Dienst. Die Vor-Ort-Anlagen unterstützen weiterhin Elasticsearch.

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

  • Elasticsearch führt schnelle und erweiterte Suchen nach Produkten im Produktkatalog durch
  • Elasticsearch Analytics unterstützt mehrere Sprachen
  • Unterstützt Stoppwörter und Synonyme
  • Die Indizierung hat keine Auswirkungen auf Kunden, bis der Neuindizierungsvorgang abgeschlossen ist
TIP
Adobe empfiehlt, immer Elasticsearch für Ihr Adobe Commerce-Projekt in der Cloud-Infrastruktur einzurichten, selbst wenn Sie ein Tool für die Drittanbietersuche für Ihre Adobe Commerce-Anwendung konfigurieren möchten. Das Einrichten von Elasticsearch bietet eine Ausweichoption für den Fall, dass das Suchwerkzeug eines Drittanbieters fehlschlägt.

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

NOTE
Senden Sie ein Adobe Commerce-Support-Ticket , um die Dienstkonfiguration in Pro Production- und Staging-Umgebungen zu ändern.

So aktivieren Sie Elasticsearch:

  1. Fügen Sie bei Starterprojekten den Dienst elasticsearch zur Datei .magento/services.yaml hinzu, wobei die Elasticsearch-Version und der zugewiesene Speicherplatz in MB vorhanden sind.

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

    Für Pro-Projekte müssen Sie ein Adobe Commerce-Supportticket senden, um die Elasticsearch-Version in den Staging- und Produktionsumgebungen zu ändern.

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

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

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

    Informationen dazu, wie sich diese Änderungen auf Ihre Umgebungen auswirken, finden Sie unter Dienste.

  4. Nachdem der Bereitstellungsprozess abgeschlossen ist, melden Sie sich mit SSH bei der Remote-Umgebung an.

    code language-bash
    magento-cloud ssh
    
  5. Indizieren Sie den Index der Katalogsuche neu.

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

    code language-bash
    bin/magento cache:clean
    
TIP
Nach der Ersteinrichtung des Dienstes können Sie die Softwareversion für einen installierten Dienst ändern, indem Sie die Konfigurationsdateien services.yaml und .magento.app.yaml aktualisieren. Eine Anleitung zum Aktualisieren oder Herunterstufen eines Dienstes finden Sie unter Dienstversion ändern .

Elasticsearch-Softwarekompatibilität

Wenn Sie Adobe Commerce in einem Cloud-Infrastrukturprojekt installieren oder aktualisieren, prüfen Sie immer, ob die Elasticsearch-Dienstversion mit dem Elasticsearch PHP-Client für Adobe Commerce kompatibel ist.

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

  • Projektaktualisierung - Überprüfen Sie, ob der Elasticsearch-PHP-Client in der neuen Anwendungsversion mit der in der Cloud-Infrastruktur installierten Elasticsearch-Dienstversion kompatibel ist.

Die Unterstützung von Dienstversionen und Kompatibilität für Adobe Commerce in der Cloud-Infrastruktur wird durch Versionen bestimmt, die in der Cloud-Infrastruktur bereitgestellt werden. Manchmal unterscheidet sich die Unterstützung von Versionen, die von lokalen Adobe Commerce-Implementierungen unterstützt werden. Siehe Dienstversionen.

Überprüfen der Kompatibilität der Elasticsearch-Software:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. Zeigen Sie die Details des Elasticsearchs für die aktive Umgebung an.

    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 Composer-Paketversion 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-Clientversion in der Datei composer.lock im Stammverzeichnis der Umgebung.

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

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

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

    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 den installierten Elasticsearch-Dienst version:number vom Dienstendpunkt 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-Dienst und dem PHP-Client.

    Wenn die Versionen inkompatibel sind, nehmen Sie eine der folgenden Aktualisierungen an Ihrer Umgebungskonfiguration vor:

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

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

TIP
Für Pro-Projekte müssen Sie ein Adobe Commerce-Support-Ticket senden, um Dienste nur in Staging - und Production -Umgebungen zu installieren oder zu aktualisieren.
Geben Sie die erforderlichen Dienständerungen an, fügen Sie Ihre aktualisierten Dateien .magento.app.yaml und services.yaml 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 in Anwendungskonfiguration.
Für Änderungen an einer Live-Produktionsumgebung (Nur Pro) ist eine Benachrichtigung über mindestens 48 Stunden erforderlich. Dadurch kann das Cloud-Infrastruktur-Team ausreichend Zeit für die Mobilisierung von Ressourcen und die Durchführung eines sicheren Upgrades erhalten. Der Benachrichtigungszeitraum beginnt, wenn das Infrastrukturteam die Anfrage bestätigt und das Upgrade plant, mit Ausnahme der Wochenenden. Damit beispielsweise Dienstaktualisierungen am Montag abgeschlossen werden können, muss bis Mittwoch eine Bestätigung des geplanten Upgrades eingehen. In Spitzenlastzeiten kann es länger dauern, Ihre Anfrage zu verarbeiten.

Elasticsearch-Dienst neu starten

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

Zusätzliche Suchkonfiguration

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

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

Hinzufügen von Plug-ins für Elasticsearch

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

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

Wenn Sie das Drittanbieter-Plug-in der Elastic Suite verwenden, müssen Sie das ece-tools -Paket auf Version 2002.0.19 oder höher aktualisieren.
Fügen Sie beim Einrichten der Elastic Suite die Konfigurationseinstellungen zur Variablen "ELASTICSUITE_CONFIGURATION deploy"hinzu. Mit dieser Konfiguration werden die Einstellungen über verschiedene Bereitstellungen hinweg gespeichert.

Entfernen von Plug-ins für Elasticsearch

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 soll verhindern, dass Daten, die von diesen Plug-ins abhängen, verloren gehen oder beschädigt werden.

So entfernen Sie Elasticsearch-Plug-ins:

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

  2. Fügen Sie Code-Änderungen hinzu, übertragen Sie sie und übertragen Sie sie.

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

  4. Indizieren Sie den Index der Katalogsuche neu.

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

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

Fehlerbehebung

In den folgenden Adobe Commerce-Supportartikeln finden Sie Hilfe zur Fehlerbehebung bei Problemen mit Elasticsearch:

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