Suche verstehen
Wir helfen Ihnen dabei, die Such­anfragen Ihrer Kund*innen und Mit­ar­bei­­ter*innen zu ver­stehen und schnell re­le­vante Ergebnisse zu liefern.

Solr MultiCore Installation mit Version 4.10.3

In diesem Artikel beschreiben wir, wie einfach und schnell eine Apache Solr MultiCore Installation mit Version 4.10.3 erstellt werden kann, die sowohl unter Linux, Windows als auch MacOS läuft.

Das fertige Endergebnis ist ebenfalls als Download verfügbar:
[call-to-action id=”534″/]

Die Solr MultiCore Installation vorbereiten

Die Web-Site von Apache Solr http://lucene.apache.org/solr/ bietet den Download der aktuellen und auch vieler Vorgängerversionen an. Dabei ist es empfehlenswert, einen Mirror-Server in geographischer Nähe zu wählen, da diese in der Regel bessere Download-Raten bieten. In den meisten Fällen ist der Download mit knapp 150 MB aber ohnehin schnell erledigt.

Nachdem Entpacken des Archives findet man folgenden Inhalt:

solr multi-core installation archiv

Neben der Dokumentation, den Lizenzdateien und verschiedenen Zusatzbibliotheken ist vor allem das Verzeichnis example interessant. In ihm befindet sich eine komplette Beispielinstallation von Solr, die bereits für verschiedene Szenarien vorkonfiguriert ist. Da hier aber immer noch Zusatzmaterial enthalten ist, das wir im Endergebnis nicht benötigen, wird dieses Verzeichnis ebenfalls noch ausgedünnt.

Dazu entfernen wir die folgenden Verzeichnisse:

  • exampledocs – Beispieldokumente, für die wir im weiteren Verlauf keine Verwendung haben.
  • example-DIH – eine Beispielkonfiguration zum DataImportHandler für einen direkten Datenbank-Import enthält und für die MultiCore-Installation ebenfalls unnötig ist
  • example-schemaless – eine Beispielkonfiguration für eine „schemaless“ Installation darstellt. Bei genauerer Betrachtung enthält natürlich auch diese Konfiguration ein Schema; allerdings eines, das nur aus dynamischen Feldern besteht. Solch ein Schema bietet nahezu keine Überprüfung der abgelegten Dokumente und öffnet daher Tür und Tor für Fehler jeglicher Art. Diese Konfiguration ist weder für die Entwicklung noch den Produktionseinsatz empfehlenswert.
  • solr – eine Beispielkonfiguration für eine Single-Core-Installation und wird von uns deshalb nicht benötigt.
  • multicore/exampledocs – weitere Beispieldokumente, die wir nicht benötigen

Die Datei multicore/zoo.cfg ist nur für den Betrieb als SolrCloud erforderlich und kann daher ebenfalls entfernt werden. Bei Bedarf können Sie auch die beiden README.txt entfernen, sie beschreiben lediglich den Inhalt der Beispieldateien.

Das Ergebnis sollte so aussehen:

solr multi-core installation bereit

Nachdem wir nun alle Dateien entfernt haben, die wir für unsere MultiCore-Installation nicht benötigen, können wir sie bereits starten.
Dazu genügt, im Installationsverzeichnis folgenden Befehl auszuführen:

java -Dsolr.solr.home=multicore -jar start.jar

Solr startet daraufhin in der Konsole als Vordergrundprozess und ist unter http://localhost:8983/solr erreichbar.

[call-to-action-consulting /]

Cores einrichten und konfigurieren

Im Solr Admin können wir sehen, dass bereits 2 Cores in unsere MultiCore-Installation vorhanden sind.

Solr Multi-Core Installation Admin

Diese beiden Cores sind in der Datei „multicore/solr.xml“ definiert:

<solr persistent="false">
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}">
    <core name="core0" instanceDir="core0"/>
    <core name="core1" instanceDir="core1"/>
    <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
      <str name="urlScheme">${urlScheme:}</str>
    </shardHandlerFactory>
  </cores>
</solr>

Die Liste der Cores kann beliebig geändert werden und wirkt sich nach einem Neustart aus.

Jeder Eintrag enthält den Namen des Cores, unterdem er angesprochen werden kann. Diese Namen müssen eineindeutig vergeben werden. Wird ein Name mehrfach vergeben, startet die gesamte Installation nicht!

Zusätzlich muss jeder Eintrag das instanceDir festlegen, unter dem die Konfiguration der Cores zu finden ist. Dieses Verzeichnis kann entweder absolut, z.B. /usr/local/solr/core-0, oder relativ zum Verzeichnis multicore sein.

Optional kann auch das dataDir festgelegt werden, unter dem die tatsächlichen Nutzdaten des Index abgelegt werden. Die Angabe ist ebenfalls absolut oder relativ möglich, wie beim instanceDir. Fehlt die Angabe, so ergibt sie sich aus der solrconfig.xml der Konfiguration der Cores. Standardmäßig ist dies dann instanceDir/data.

Abschluss der Solr MultiCore Installation

Die MultiCore-Installation ist damit fertig.

Wer sich Tipparbeit ersparen will, kann die Befehlszeile zum Starten natürlich in ein Script gießen und Solr somit per Klick starten oder als Hintergrunddienst einbinden. Es ist allerdings darauf zu achten, das aktuelle Verzeichnis zu wechseln, da Solr die meisten Ressourcen per Konvention in bestimmten relativen Verzeichnissen erwartet.

Wer es sich noch einfach machen möchte, kann das Verzeichnis multicore in solr umbenennen und dann sogar die Angabe des Basisverzeichnis weglassen:

java -jar start.jar

solr ist nämlich per Konvention der Vorgabewert für solr.home.