Suchen auf Drupal-Sites macht Spaß mit Apache Solr!
Nun habe ich es getan und Apache Solr auf all meinen Websites eingerichtet. Und es fing ganz harmlos an…
Für unser Firmen-Intranet brauchten wir unbedingt eine bessere Suche, als sie Drupal mit ausgeliefert wird. Hauptprobleme waren die Bearbeitungszeit für eine Suchanfrage und die Unfähigkeit, Bestandteile von zusammengesetzten Wörtern oder Worte in gebeugten (sagt man das so?) oder abgeleiteten Formen zu finden, wenn nur die Normalform des Wortes eingegeben wird. Und so hatte ich mir vorgemerkt, mal irgendwann Apache Solr auszuprobieren. Und dann fand ich die “neue” Suchfunktion auf Drupal.org ziemlich sexy, seit man das Suchergebnis nachträglich nach Inhaltstypen, Autoren etc. einschränken kann. Es wurde als Zeit für einen Bastelnachmittag.
Dank des sehr guten Integrationsmoduls für Drupal, des dazugehörigen Handbuchs war die Suche schnell exemplarisch realisiert; die Solr-Distribution bringt alle notwendigen Komponenten mit, den Suchserver als WebApp im Jetty-Application Server “out of the Box” laufen zu lassen. Die Doku dazu wird auch mitgeliefert :)
Im Solr-Wiki wird dann auch beschrieben, wie man dieses Setup zum Dienst in einem Linux/Unix-System ausbaut (/etc/init.d/jetty und /etc/default/jetty anlegen und anpassen und mit update-rc.d als Dienst registrieren. Achja: Den Benutzer solr und die Gruppe solr anlegen und Dateiberechtigungen für Log- und Index-Verzeichnis anpassen ist von großer Hilfe!
Ein paar Anpassungen habe ich denn doch vorgenommen: Zwar habe ich den Dienst unter /opt/solr installiert, habe aber die Konfigurationsdateien und den Index unter /var/lib/solr/ abgelegt. Und die Log-Dateien werden nach /var/log/solr/ geschrieben. Außerdem lauscht der Jetty nur an 127.0.0.1:8983 statt 0.0.0.0:8983. Ja und natürlich habe ich für jede Website auf dem Server einen eigenen Index, also Multicore-Installation.
Nachdem der Service im Intranet lief und das Ergebnis im Drupal einfach beeindruckend ist (Stichwort: Blöcke für alle Facetten, komfortables Filtern über Taxonomy-Begriffe und “Related content” auf Basis des Suchindex), habe ich gleich noch die virtuellen Server für meine privaten Websites und unsere Firmen-Websites mit einer Solr-Suche ausgestattet. Also: http://niebegeg.net/search für eine schnelle Demo :)
Fazit: Drupal mit Apache Solr rockt!
UPDATE:
Auf meinem Webserver habe ich einige Websites für verschiedene Leute gehostet und nutze dafür Confixx. Als InstanceDir habe ich einen Pfad im Heimatverzeichnis des Confixx-Users angegeben, so dass die Solr-Konfiguration und der Suchindex im täglichen Confixx-Backup enthalten sind.
PS: Ich muss mich bremsen. Vor Begeisterung könnte ich ein Buch darüber schreiben!
UPDATE 2:
Ich habe das Solr-Modul erstmal deaktiviert, bis ich meine Website auf einen neunen Server mit mehr RAM und CPU umgezogen habe. Das wird wohl in Kürze passieren. Bis dahin arbeitet hier (leider) wieder die Standardsuche.


Search is sexy – ich freue mich, dass du Erfolg damit hast.
Cheers
Robert