Elasticsearch Titelbild

Seit Version 2.4 kann das Onlineshopsystem Magento 2 nicht mehr die MySQL Suche verwenden. Unabhängig von der gesteigerten Qualität der Suchergebnisse durch Elasticsearch oder anderen Suchanbietern, kann man den Verzicht auf die MySQL Suche kritisch sehen.

 

 

Die Installation einer Java Virtual Machine die für die Ausführung von Elasticsearch benötigt wird, ist bei einigen Webhostern nicht vorgesehen, was am Ende dazu führt, dass man die Elasticsearch Instanz extern hosten muss. Das führt am Ende zu weiteren Kosten und potenziellen Fehlerquellen.

 

In unserer Onlineagentur nutzen wir die Instanz, die direkt von Elastic angeboten wird. Beim Einrichten ist zu empfehlen, stark auf die stündlichen Preise zu schauen. Ein falsch konfiguriertes Deployment kann sonst schnell das 10-fache an Kosten verursachen.

 

Nachdem man das Deployment fertig konfiguriert hat, bekommt man ein Passwort, welches man sich notieren sollte.

 

Im nächsten Schritt öffnen wir parallel unser Magento 2 Backend unter:

 

Shops -> Konfiguration -> Katalog -> Katalog -> Katalogsuche

 

In diesem Tab wählt man als Suchmaschine Elasticsearch in der Version, die auf dem Server läuft, aus.

 

Im Tab Elasticsearch Server Hostname benötigen wir jetzt die Daten aus dem Elasticsearch Backend.

 

Auf der Startseite der Elastic Cloud sieht man jetzt eine Auflistung aller erstellten Deployments. Man wählt hier das gewünschte aus und wird dann auf eine neue Übersicht weitergeleitet.

 

Hier gibt es einen Punkt Applications. Hier wählt man bei Elasticsearch Copy endpoint aus. Mit diesen Daten geht man jetzt wieder ins Magento 2 Backend und kopiert den Endpoint bei Elasticsearch Server Hostname rein.

 

Hier ein Beispiel, wie der Endpoint aussehen könnte:

 

https://my-deployment-fg1234.es.eu-central-1.aws.cloud.es.io:9243

 

Hier schneidet man die Zahlen von rechts nach links bis zum Doppelpunkt aus und kopiert die Zahlen in Elasticsearch Server Port rein. Der Doppelpunkt bei Server Hostname muss natürlich gelöscht werden.

 

Beim Elasticsearch Index Prefix kann man den Standardwert magento2 einfach beibehalten, solange man das Deployment nur für eine Magento Instanz verwendet.

 

Als nächstes muss beim Dropdownmenü Enable Elasticsearch HTTP Auth ja ausgewählt werden. Wenn dies gemacht wurde, erscheinen neue Punkte. Bei Elasticsearch HTTP Username muss jetzt elastic eingegeben werden.

 

Bei Elasticsearch HTTP Password muss das Passwort, welches bei der Erstellung des Deployments zur Verfügung gestellt wurde, eingetragen werden.

 

Im nächsten Schritt prüfen wir die Verbindung mit Testverbindung. Wenn alles richtig eingetragen wurde, ändert sich der Text in „Erfolgreich! Erneut testen?“.

 

Sollte ein 401 Fehler auftauchen, stimmt mit den Anmeldedaten etwas nicht, und sollte im Zweifel überprüft werden.

 

Als letzten Schritt muss man per SSH Zugriff ein reindex des Kataloges durchgeführt werden. Dazu navigiert man in das Magento 2 root Verzeichnis und führt dort den folgenden Befehl aus:

 

bin/magento indexer:reindex catalogsearch_fulltext

 

Dieser Schritt ist sehr wichtig, da sonst die Suche Fehlermeldungen ausgibt.

 

Jetzt kann die neue Katalogsuche von Magento getestet werden.

 

Mit dieser Umstellung ist ihr Webshop nun zukunftsfähig aufgestellt.