de_DEus

Solr-Suche für die Magento Community Edition

Update – Oktober 2015

Da leider keins der 2013 getesteten Module unsere Anforderungen komplett erfüllen konnte, haben wir uns für die Entwicklung eines eigenen Solr-Moduls für Magento, IntegerNet_Solr, entschieden, welches 2015 veröffentlicht wurde.

Mehr über IntegerNet_Solr

Drei Module im Vergleich

Solr ist eine alternative Suchfunktionalität, die als OpenSource kostenlos genutzt werden kann. In der Magento Enterprise Edition ist eine Schnittstelle zu Solr bereits enthalten, in der Community Edition nicht. Gegenüber der Standardsuche von Magento zeichnet sich Solr durch eine deutlich höhere Performance aus. Auch bietet die Bibliothek zusätzliche Funktionen wie Rechtschreibkorrektur oder eine Facetten-Suche, die z.B. für Suchfilter eingesetzt werden kann.

Für die Magento Community Edition sind meines Wissens drei Module verfügbar (Stand: 2013):

Alle drei Extensions haben wir getestet.

Grundvoraussetzung ist immer ein installiertes Solr. Üblicherweise läuft dies als Servlet auf einem Tomcat Application Server. Für die Installation auf einer Windows-Testumgebung führt der ausführliche Artikel “E-Commerce goes Enterprise” von Tobias Zander aus der (fast) aktuellen PHP Magazin-Ausgabe 2.2013 Schritt für Schritt durch die Installation. Die nutzbare Solr-Version ist vom favorisierten Magento-Modul abhängig. Wichtig für die Solr-Extension von Magentix ist, dass nicht die aktuellste Solr-Version installiert wird, sondern die Version 3.6.x. Die anderen beiden Module benötigen die Version 4.0.x.

Magentix_Solr

Magentix_Solr ist ein reines OpenSource-Produkt, das kostenlos und frei verfügbar ist.

Nach der Installation (z.B. bei Github herunterzuladen) muss zunächst noch die mitgelieferte Datei schema.xml (unter “/app/code/local/Magentix/Solr/etc/schema.xml”) in das “conf”-Verzeichnis der Solr-Instanz kopiert werden.

Die Konfiguration in Magento ist relativ übersichtlich:

Magentix-Solr-Config

Ist die Konfiguration abgeschlossen, sollte der Suchindex unter System -> Indizes verwalten neu aufgebaut werden. Ab sofort kommen damit alle Suchergebnisse nicht mehr aus der Magento-Datenbank, sondern direkt aus Solr.

Vorteile

Die Extension ist einfach zu konfigurieren und einzurichten, sofern Solr korrekt läuft. Die Kernfunktionalität besteht darin, dass die Speicherungstechnologie des Suchindex ausgetauscht wird – statt der MySql-Datenbank wird Solr verwendet. Dadurch ist das Modul auch kompatibel zu den meisten Modifikation der Suchfunktion oder -ergebnisse, da die Ausgabe nicht modifiziert wird. Somit wird mit wenig Aufwand die Performance der Suche deutlich erhöht.

Nachteile

Der größte Nachteil ist, dass keine der erweiterten Funktionalitäten genutzt wird, wie z.B. die Rechtschreibkorrektur, weitere Suchvorschläge oder Filter. Damit reduziert sich die Funktionalität auf eine reine Performance-Optimierung.

Solrgento

Solrgento vom deutschen Entwickler Damian Luszczymak wurde erstmals zur Meet Magento #3.2010 vorgestellt und ist seitdem weiterentwickelt worden. Es überschreibt den Suchindex von Magento, sodass die Produktdaten statt in der Datenbank im Solr-Index vorliegen, die Aktualisierung des Suchindex erfolgt entsprechend automatisch bei jeder Änderung der Produktdaten. Einen weiteren Index gibt es für CMS-Seiten, deren Inhalte ebenfalls durchsucht werden können.

Die Installation erfolgt ebenso einfach wie bei Magentix_Solr: Eine Solr-Konfiguration wird mitgeliefert, die in das entsprechende Verzeichnis auf dem Solr-Server kopiert werden muss und “out of the box” funktioniert. Die Konfiguration des Moduls ist etwas umfangreicher, aber ebenso selbsterklärend:

Solrgento Konfiguration

Anschließend müssen die Indizes aktualisiert werden. Anpassungen am Template werden vom Modul nicht vorgenommen – die Darstellung erfolgt genau wie mit der Standardsuche von Magento, nur die Auswahl der Suchergebnisse erfolgt mit Hilfe von Solr. Lediglich die Filter-Navigation wird ersetzt, um die neuen Funktionen einsetzen zu können.

Vorteile

Das Modul hat insgesamt eine recht gute Codequalität und hält sich an die Standards von Magento. Dadurch ist eine (fast immer notwendige) Erweiterung nach einer gewissen Einarbeitung gut möglich.

Gegenüber der Standard-Suchfunktionalität bietet es einige Zusatzfunktion wie die unscharfe Suche, die unterschiedliche Gewichtung von Attributen oder die Layered Navigation. Ein Feature, das keins der anderen Module hat, ist das Durchsuchen von Inhaltsseiten (CMS).

Nachteile

Das Modul nutzt leider noch nicht alle Fähigkeiten von Solr. Besonders haben wir alternative Suchvorschläge (“Meinten Sie …?”) vermisst. Der Preis ist zwar relativ hoch, aber im Großen und Ganzen gerechtfertigt. Eine Online-Demo wäre schön, um sich vor dem Kauf (und v.a. der Installation, da eine kostenlose, verschlüsselte Demo-Version angeboten wird) ein Bild von der Frontend-Funktionalität machen zu können.

SolrBridge

SolrBridge wurde von dem vietnamesischen Solr-Spezialisten Hau Danh entwickelt. Versionen für Xcart, Prestashop und xt:Commerce befinden sich seiner Aussage nach in Entwicklung. Einen guten Überblick über die Funktionalität bietet die Online-Demo. Technisch arbeitet SolrBridge mit einem komplett eigenem Modul, das nicht auf den Standard-Indexern von Magento aufsetzt.

Auch SolrBridge liefert eine vollständige Solr-Konfiguration mit. Die Installation und Konfiguration in Magento ist etwas komplizierter und nicht hundertprozentig intuitiv, aber mit der mitgelieferten Dokumentation gut machbar, einen laufenden Solr-Server vorausgesetzt. Der folgende Screenshot zeigt einen Auszug aus der umfangreichen Konfiguration:

SolrBridge Konfiguration

Die Index-Verwaltung erfolgt über eine eigene Seite mit AJAX-Funktionalität:

SolrBridge Indexing

Vorteile

SolrBridge bietet von den drei getesteten Modulen den größten Funktionsumfang, unter anderem eine Korrekturfunktion, Suchvervollständigung und Filter-Funktionalität mit mehreren Filtern pro Attribut. Augenfällig ist die auffallende Suchvorschau, nachdem man die ersten Buchstaben in das Suchfeld getippt hat. Die neueste Version bietet außerdem die Auslieferung der Kategorieseiten über Solr, was wir aber noch nicht testen konnten.

Nachteile

Der größte Nachteil von SolrBridge ist die durchwachsene Code-Qualität und damit die mäßige Erweiterbarkeit. Für unseren Kunden design-bestseller.de haben wir SolrBridge eingesetzt und v.a. die Suchvorschau erweitert – Hauptentscheidungsmerkmal war die bereits vorhandene Suchvorschau-Funktionalität. Diese ist leider fast vollständig in JavaScript implementiert, was die Anpassung durch die fehlende Template-Engine unnötig kompliziert macht. Nicht ganz glücklich war auch die Entscheidung für eine eigene Indexing-Funktionalität, die über Observer alle Änderungen in Produktdaten speichert – leider funktioniert dies jedoch für viele Produktimporte nicht, sodass hier von Hand nachgebessert werden muss. Man merkt an vielen Stellen deutlich, dass der Entwickler Solr-Experte, aber nicht unbedingt erfahrener Magento-Entwickler ist.

Fazit

Mit den drei Solr-Modulen für die Magento Community Edition bieten sich brauchbare, wenn auch keine perfekte Lösungen. Jede dieser Lösungen ist allerdings besser als die Standardsuche von Magento. Wenn man eines dieser Module einsetzen will, sollte man sich allerdings darauf einstellen, dass man sich weiter in Solr und in das Modul einarbeiten muss, spätestens bei der ersten kleinen Anpassung. Diese Einarbeitung lohnt sich allerdings, man kommt nach relativ kurzer Zeit zu guten Ergebnissen.

Zum Zeitpunkt des ersten Verfassens dieses Artikels hätte ich vermutlich Solrgento eingesetzt, da die gegenüber SolrBridge bessere Codequalität die Erweiterung und Anpassung deutlich vereinfacht. Mit Blick auf unsere Ansprüche an Funktionsumfang und Codequalität haben wir bei integer_net uns letztlich dazu entschlossen, selbst ein Solr-Modul für Magento zu entwickeln. Ziel war es dabei, die Nachteile anderer Module zu vermeiden und stattdessen in einer Lösung alle Vorteile zu vereinen. Auf unserer Website finden Sie weitere Informationen zu IntegerNet_Solr, unserem Solr-Modul.

Mehr über IntegerNet_Solr

Andreas von Studnitz

Autor: Andreas von Studnitz

Andreas von Studnitz ist Diplom-Informatiker, Magento-Entwickler und Geschäftsführer von integer_net. Seine Schwerpunkte sind Schnittstellenentwicklung, Backendentwicklung, Beratung und Entwicklerschulungen. Seit 2011 ist er Magento Certified Developer, seit 2014 Magento Certified Solution Specialist.

Mehr Informationen

Dieser Beitrag hat 6 Kommentare

    • Christian Philipp sagt:

      Hallo Martin,

      ElasticSearch haben wir noch nicht ausprobiert, deshalb können wir leider noch nichts dazu sagen.

      • Volker Thiel sagt:

        Ich habe das kostenlose ElasticSearch-Modul testweise auf einen Magentoshop mit 1,3 Mio. SKUs losgelassen. Die Performance war mit der von Solr vergleichbar, vielleicht sogar geringfügig besser. Features wie Facettierung und Rechtschreibkorrektur konnte ich allerdings nicht testen. Dies ist erst mit ElasticSearch v0.90+ möglich welches von dem kostenlosen Modul jedoch nicht unterstützt wird. Wird aber vermutlich ähnlich intuitiv wie bei SolrGento gelöst sein.

Einen Kommentar hinterlassen