Was ist Solr?

Solr bietet auf Basis von Lucene eine sehr mächtige und dabei leicht zu bedienende und zu integrierende Suchplattform. Es kann durch die hohe Anzahl der mitgelieferten Module und Schnittstellen an die jeweiligen Datenstrukturen und Suchbedürfnisse angepasst werden.
Der Einsatz von Solr und Lucene ist auch kommerziell kostenfrei.

Es besteht oftmals der Wunsch oder der Bedarf  an der Sourcecode-Basis von „Apache Solr“ Änderungen vorzunehmen. Die Vorgehensweise zum Einrichten einer Entwicklermaschine wird hier detailliert beschrieben.

Eclipse installieren

Als IDE empfiehlt sich Eclipse, die neueste Version ist unter
Eclipse-Downloads zu finden. Empfehlenswert ist der Download der vollen Version, der „IDE for Java EE Developers“.

Sourcecode von Solr auschecken

Sourcecode von Solr ist im Trunk zu finden, und mit Hilfe von SVN leicht auszuchecken. Bei einer Einrichtung auf einer Windows-Maschine empfiehlt sich dafür der Client
TortoiseSVN. Der Link zum Solr-Trunk und der SVN-Befehl um an den Sourcecode zu kommen lautet:
svn checkout https://svn.apache.org/repos/asf/lucene/dev/trunk/ lucene-solr

Servlet-Engine installieren, oder was ist “RunJettyRun”

Solr benötigt eine Servlet-Engine um lauffähig zu sein, wie z.B. Apache Tomcat od. Jetty.
Nach dem Installieren von Eclipse kann somit aus dem „Eclipse Market“ (Help->Eclipse Market) das Plugin „RunJettyRun“ heruntergeladen und installiert werden.

Solr bauen und in Eclipse importieren

Im nächsten Schritt wird im ausgecheckten Solr Source-Ordner der Befehl „ant eclipse“ ausgeführt, um ein eclipse-Projekt zu erstellen.
Anschliessend importieren wir das Projekt in unseren Eclipse-Workspace(File->Import->Existing Projects into Workspace->zur Source directory navigieren->Add und Finish).

Solr-Konfiguration anpassen

Bei Bedarf können jetzt das Solr-Schema(schema.xml) und die Solr-Configuration(solrconfig.xml) an die eigenen Bedürfnisse angepasst werden. Diese befinden sich im ausgecheckten Solr-Sourcecode unter solr/example/solr/conf/.
Eventuell sollte dabei auch die Data-Directory angepasst werden, der Pfad zum Index.
Diese Angabe befindet sich in der solrconfig.xml unter <dataDir>xxx<dataDir/>

Sollte bereits ein Index vorhanden sein(Segmente in der dataDir), und wird eine Änderung des Schemas vorgenommen, dann muss der alte Index gelöscht werden(Konsolenbefehl: rm -rf).

RunJettyRun konfigurieren

Als nächstet konfigurieren wir das RunJettyRun-Plugin in Eclipse.
Die Änderungen sind in den Screenshots zu sehen. Die Konfiguration ist unter RUN -> Run Configurations erreichbar.

Wie im ersten Screenshot der Konfiguration ersichtlich müssen der Port, der Context sowie der Link zur WebApp angegeben werden. Die Standard-Angaben dazu sind Port:8080 und Context /solr.

Der zweite Screenshot zeigt die nächste notwendige Anpassung. Unter VM-Arguments wird das Solr-Home Verzeichnis eingebunden. Mit „Run“ wird die Konfiguration beendet.

Erster Lauf

Beim Ausführen des Projekts über die Hauptleiste in Eclipse (run) fährt bei richtiger Konfiguration der Servlet-Container “Jetty” hoch.
Ist es der Fall, dann kann im Eclipse-eigenen Browser die Solr GUI unter http://localhost:8080/solr/ erreicht werden.

Index mit einem .csv-Import befüllen

Der Index ist beim ersten Start leer.
Eine Möglichkeit den Index zu füllen ist der CSV-Import.

Die Erstellung der .csv-Datei läuft wie folgt ab.
In der ersten Zeile werden die Namen der Index-Felder eingetragen(im Screenshot “text” und “title”). In der zweiten und den weiteren Zeilen der zu indizierende Inhalt.

Nach der Erstellung der Datei wird diese beispielweise mit einem Curl-Befehl an Solr übertragen:

curl http://localhost:8080/solr/update/csv –data-binary @import.csv -H ‘Content-type:text/plain; charset=utf-8′

Nach dem fehlerfreien Import sollten bei einer Suche im Index bereits die Ergebnisse zu sehen sein. Zu berücksichtigen ist dabei die voreingestellte Commit-Zeit, welche evtl. erst abgewartet werden muss damit Ergebnisse zu sehen sind.

Es läuft, was mache ich jetzt?

Die Änderungen am Quellcode, sei es Bug-Fixing oder die Entwicklung eigener neuer Komponenten können der Community bereitgestellt werden. Mehr dazu in den nachfolgenden Links.

http://lucene.apache.org/solr/
http://wiki.apache.org/solr/HowToContribute
http://wiki.apache.org/solr/SolrPlugins
http://wiki.apache.org/solr/SearchComponent

Wie ist Ihre Erfahrung mit dem Aufsetzen einer Entwicklermaschine für Apache Solr? Wir freuen uns über weitere Tipps!

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *