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.
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
Verwenden Sie die folgenden Anweisungen für die Einrichtung des Services in Pro Integration-Umgebungen und Starter-Umgebungen, einschließlich der master.
So aktivieren Sie Elasticsearch:
-
Fügen Sie für Einstiegsprojekte den
elasticsearch-Service zur.magento/services.yamlmit der Elasticsearch-Version und zugewiesenem Speicherplatz in MB hinzu.code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024Bei Pro-Projekten müssen Sie ein Adobe Commerce-Support-Ticket einreichen, um die Elasticsearch-Version in der Staging- und Produktionsumgebung zu ändern.
-
Legen Sie die
relationships-Eigenschaft in der.magento.app.yamlfest.code language-yaml relationships: elasticsearch: "elasticsearch:elasticsearch" -
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.
-
Verwenden Sie nach Abschluss des Bereitstellungsprozesses SSH, um sich bei der Remote-Umgebung anzumelden.
code language-bash magento-cloud ssh -
Indizieren Sie den Katalogsuchindex neu.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext -
Reinigen Sie den Cache.
code language-bash bin/magento cache:clean
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.yamlangegebene 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:
-
Wechseln Sie auf Ihrer lokalen Workstation in Ihr Projektverzeichnis.
-
Elasticsearch-Details für die aktive Umgebung anzeigen.
code language-bash magento-cloud relationships --property=elasticsearch -
Alternativ können Sie SSH verwenden, um sich bei der Remote-Umgebung anzumelden.
code language-bash magento-cloud ssh -
Ü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/elasticsearchAußerdem finden Sie die Elasticsearch PHP Client Version in der
composer.lockDatei im Umgebungsstammverzeichnis. -
Rufen Sie über die Befehlszeile die Verbindungsdetails des Elasticsearch-Services ab.
code language-bash vendor/bin/ece-tools env:config:show servicesSuchen 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 | +------------------------------------------+----------------------------------------------------------------------+ -
Rufen Sie die installierte Elasticsearch-Service-
version:numbervom 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" } -
Ü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.
-
-
Bei Pro-Projekten müssen Sie ein Adobe Commerce-Support-Ticket einreichen um Services nur in
StagingundProductionzu installieren oder zu aktualisieren. -
Geben Sie an, welche Service-Änderungen erforderlich sind, schließen Sie Ihre aktualisierten
.magento.app.yaml- undservices.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.note important IMPORTANT Verwenden Sie bei der Auswahl des Felds Umgebung im neuen Ticketformular die Umgebungsbenennung von Adobe. Wählen Sie beispielsweise Staging aus, auch wenn Sie diese Umgebung intern dev aufrufen. Sie können Ihren internen Namen in der Beschreibung angeben, aber das Umgebungsfeld selbst muss die Nomenklatur von Adobe verwenden. -
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 note 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. Wenn Sie ein RabbitMQ-Upgrade anfordern, stellen Sie die Umgebung nach Abschluss des Upgrades erneut bereit, damit die Nachrichtenwarteschlangen erneut initialisiert werden. -
Zweiteiliger Handshake-Prozess für die Planung von Upgrades
Um einen reibungslosen und koordinierten Upgrade-Prozess sicherzustellen, folgt der Adobe Commerce-Support einem zweiteiligen Handshake-Prozess für alle Upgrades der Produktionsumgebung:
- Kundenbestätigung: Der Adobe-Support fordert den Kunden zunächst auf, das gewünschte Datum und die gewünschte Uhrzeit für das Upgrade zu bestätigen. Mit diesem Schritt wird sichergestellt, dass das Timing den Geschäftsanforderungen und Wartungsfenstern des Kunden entspricht.
- Planung und endgültige Bestätigung: Sobald der Kunde den Zeitpunkt bestätigt, sendet der Adobe-Support die Anfrage an das Infrastruktur-Team, das dann die Anfrage prüft und die endgültige Bestätigung des geplanten Upgrade-Fensters bereitstellt.
Das Upgrade gilt erst dann als geplant, wenn das Infrastruktur-Team eine endgültige Bestätigung vorgelegt hat. Kunden wird empfohlen, mindestens 48 Stunden vor dem Upgrade-Fenster umgehend zu antworten, um Verzögerungen zu vermeiden und eine angemessene Ankündigung zu ermöglichen.
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:
-
Entfernen Sie die Elasticsearch-Plug-in-Einträge aus Ihrer
.magento/services.yaml. -
Code-Änderungen hinzufügen, übertragen und per Push übertragen.
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Remove Elasticsearch plugin"code language-bash git push origin <branch-name> -
Übertragen Sie die
.magento/services.yamlÄnderungen in Ihr Cloud-Repository. -
Indizieren Sie den Katalogsuchindex neu.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext -
Reinigen Sie den Cache.
code language-bash bin/magento cache:clean