Elasticsearch-Dienst einrichten

Elasticsearch ist ein Open-Source-Produkt, mit dem Sie Daten aus einer beliebigen Quelle und beliebigen Formaten aufnehmen und in Echtzeit suchen und 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 zu 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 master -Verzweigung.

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

So aktivieren Sie Elasticsearch:

  1. Fügen Sie für Starter-Projekte die elasticsearch -Dienst .magento/services.yaml -Datei mit der Elasticsearch-Version und zugewiesenem Speicherplatz in MB.

    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 relationships -Eigenschaft in der .magento.app.yaml -Datei.

    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 darüber, 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 services.yaml und .magento.app.yaml Konfigurationsdateien. Siehe Dienstversion ändern für Anleitungen zum Upgrade oder Downgrade eines Dienstes.

Elasticsearch-Softwarekompatibilität

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

  • Erstmalige Einrichtung-Vergewissern Sie sich, dass die im Feld services.yaml -Datei ist mit dem für Adobe Commerce konfigurierten Elasticsearch-PHP-Client kompatibel.

  • 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 von 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 im versions -Eigenschaft.

    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
    

    Außerdem finden Sie die Elasticsearch-PHP-Client-Version in der 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-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. Abrufen des installierten Elasticsearch-Dienstes version:number vom Dienstendpunkt aus.

    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. Ü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 im services.yaml -Datei in eine mit dem Elasticsearch-PHP-Client kompatible Version.

TIP
Für Pro-Projekte müssen Sie Senden eines Adobe Commerce Support-Tickets installieren oder aktualisieren Dienstleistungen in Staging und Production nur Umgebungen.
Geben Sie die erforderlichen Dienständerungen an, fügen Sie Ihre aktualisierte .magento.app.yaml und services.yaml 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), müssen Sie eine Benachrichtigung von mindestens 48 Stunden bereitstellen, damit das Cloud-Infrastruktur-Team genügend Zeit hat, Ressourcen zu mobilisieren und ein sicheres Upgrade durchzuführen.

Elasticsearch-Dienst neu starten

Wenn Sie den Elasticsearch -Dienst verwenden, 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 SEARCH_CONFIGURATION -Variablen bereitstellen, 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 Plug-ins für Elasticsearch hinzufügen, indem Sie die configuration:plugins Abschnitt zum Elasticsearch-Dienst im .magento/services.yaml -Datei. 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 aktualisieren ece-tools package auf Version 2002.0.19 oder höher.
Fügen Sie beim Einrichten der Elastic Suite die Konfigurationseinstellungen zum ELASTICSUITE_CONFIGURATION Bereitstellungsvariable. Mit dieser Konfiguration werden die Einstellungen über verschiedene Bereitstellungen hinweg gespeichert.

Entfernen von Plug-ins für Elasticsearch

Entfernen der Plug-in-Einträge aus elasticsearch: in .magento/services.yaml deinstalliert oder deaktiviert sie nicht wie erwartet. 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 Ihrem .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. Bestätigen Sie die .magento/services.yaml Änderungen an Ihrem Cloud-Repo.

  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