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ützen 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.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.
-
Legen Sie die
relationships
-Eigenschaft in der.magento.app.yaml
fest.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.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:
-
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/elasticsearch
Außerdem finden Sie die Elasticsearch-PHP-Client-Version in der
composer.lock
-Datei im Umgebungsstammverzeichnis. -
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 | +------------------------------------------+----------------------------------------------------------------------+
-
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" }
-
Ü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.
-
Staging
und Production
zu installieren oder zu aktualisieren..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.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:
-
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.yaml
code 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
Fehlerbehebung
In den folgenden Adobe Commerce-Support-Artikeln finden Sie Hilfe bei der Fehlerbehebung bei Elasticsearch-Problemen: