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.
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):
- Magentix_Solr von Matthieu Vion (kostenlos)
- Solrgento von Damian Luszczymak (€ 750)
- Magento Solr Bridge von Hau Danh (€ 450)
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 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:
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:
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:
Die Index-Verwaltung erfolgt über eine eigene Seite mit AJAX-Funktionalität:
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.

Autor: Andreas von Studnitz
Andreas von Studnitz ist Diplom-Informatiker, Magento-Entwickler und Geschäftsführer von integer_net. Seine Schwerpunkte sind Entwicklung, Beratung und die Durchführung von Schulungen. Er ist Magento 2 Certified Professional Developer Plus und hat darüber hinaus weitere Magento Zertifizierungen für Magento 1 und Magento 2. Sowohl im Jahr 2019 als auch 2020 wurde Andreas als Magento Master in der Kategorie „Mentor“ ausgezeichnet.
Seit einigen Tagen steht auch Solr4Mage in MagentoConnect kostenlos zur Verfügung. http://www.magentocommerce.com/magento-connect/catalog/product/view/id/19135/
Ich hatte leider noch keine Möglichkeit reinzuschauen, sollte aber der Vollständigkeit halber erwähnt werden.
Danke für den aufschlussreichen Vergleich.
Wie schlägt sich denn ElasticSearch im Vergleich zu Solr? Die Extension dazu ist mit 99$ sehr günstig: http://www.magentocommerce.com/magento-connect/elasticsearch-1271.html. Soweit ich weiß ist das aber leider auch die einzige. Features wie Search Correct, „Did you mean..“ klingt ja fürs Erste nicht schlecht. Habt ihr damit auch schon Erfahrung sammeln können?
Hallo Martin,
ElasticSearch haben wir noch nicht ausprobiert, deshalb können wir leider noch nichts dazu sagen.
haben neulich die Extension hier gefunden.
https://github.com/jreinke/magento-elasticsearch
Die Extension liefert auch nur den Standard Umfang (verbesserte Suche).
Allerdings fehlt hier auch die „Did you mean“ Methode.
Was uns deutlich aufgefallen ist, ist dass ElasticSearch deutlich performanter als Solr ist. (setzt auch auf Apache Lucene)
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.
Solr4Mage ist anscheinend vom Marktplatz verschwunden. Nach erstem durchschauen war die Code Qualität aber leider nicht so gut.
Meiner Erfahrung nach ist Solrgento am besten. War immer sehr Übersichtlich!