[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

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 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ützt 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, Elasticsearch immer für Ihr Adobe Commerce on Cloud-Infrastrukturprojekt 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 mit der Elasticsearch-Version und zugewiesenem Speicherplatz in MB hinzu.

    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.

Elasticsearch-Software-Kompatibilität

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

  • Ersteinrichtung: Sie, dass die in der 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 auf der Cloud-Infrastruktur installierten Elasticsearch Service-Version kompatibel 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:

  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 über die 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 Elasticsearch-Service-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 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 Elasticsearch-Dienstversion in der services.yaml-Datei in eine Version, die mit dem Elasticsearch PHP-Client kompatibel ist.

recommendation-more-help
  • 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.

NOTE
Alle geplanten Wartungsfenster müssen im UTC-Format bereitgestellt werden, um Klarheit und Konsistenz in der gesamten Kommunikation zu gewährleisten. Service-Upgrades können nicht in der Staging-Umgebung geplant werden. In den meisten Fällen werden Upgrades in der Staging-Umgebung am selben Tag wie die Anfrage durchgeführt.

Starten Sie den Elasticsearch-Service neu.

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 die 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.

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 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.
7c2b03ac-000c-497d-aba3-2c6dc720a938