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 Migration Version 4 nach Version 5

In diesem Artikel wollen wir einen kurzen Überblick geben was bei einer Migration von Solr 4 nach Solr 5 alles zu beachten ist.

Migration von Solr 4 nach Solr 5

Nachdem der Download von Solr 5.1 (http://lucene.apache.org/solr/) abgeschlossen und entpackt ist, fällt als erstes auf, dass das „example“ im Vergleich zu einer Solr MultiCore Installation mit Version 4.10.3 Verzeichnis deutlich schlanker geworden ist
Das liegt daran, dass es ein Startskript gibt, welches unterschiedliche Beispiele starten kann (Cloud, Schemaless, …).

Welche Konfigurationsänderungen gibt es zwischen Solr Version 4 und Version 5

Der Defaultwert für solr.home ist jetzt das Verzeichnis „server/solr“.
Die Konfigurationsdatei solr.xml ist jetzt anders aufgebaut ein schlankes Beispiel ist unter „server/solr/solr.xml“ zu finden.

Hier eine minimale Version der solr.xml die zum Starten benötigt wird:

<solr>
  <solrcloud>
    <str name="host">${host:localhost}</str>
    <int name="hostPort">${jetty.port:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
  </solrcloud>
</solr>

Die Einstellungen für Host, Port und Context sind dabei zwingend erforderlich, sonst startet Solr im Cloudmodus nicht.

Migration von Cores – wie werden sie in Solr 5 definiert

Am wichtigsten ist wohl, dass keine Cores mehr in der solr.xml Datei definiert werden. Diese werden über das sogenannte „Core Discovery“ automatisch gefunden (dieses Feature gibt es seit Version 4.4, ab Version 5.0 ist die alte Konfiguration allerdings nicht mehr gültig und Solr startet nicht mehr).
Es wird in allen Unterverzeichnissen des Verzeichnisses, das in solr.home angegeben, ist nach einer Datei core.properties gesucht. Als instanceDir angenommen wird das Verzeichnis angenommen in dem die core.properties gefunden wurden.
Es gibt verschieden Parameter um die Defaulteinstellungen zu überschreiben (siehe Solr Onlinedokumentation), der einfachste Fall jedoch ist ein leeres core.properties.
Bei so einer Konfiguration werden folgende Einstellungen verwendet:

  • Core Name: Name des Verzeichnisses in dem die Datei core.properties abgelegt ist.
  • solrconfig.xml: es wird der Pfad ./conf/solrconfig.xml verwendet.
  • schema.xml: wird unter ./conf/schema.xml angenommen.
  • Index Daten: werden im Verzeichnis ./data/index abgelegt.
  • Transactionlog: wird unter ./data/tlog geführt.

Achtung, das Verschachteln von Cores wird dabei allerdings nicht unterstützt.

[call-to-action-consulting /]

Starten von Solr 5 im Unterschied zu Solr 4

Die auffälligste Änderung beim Starten von Solr ist das Startskript, welches auch als Windows/Linux Service installiert werden kann.

Bisher haben wir eine MultiCore Installation mit dem folgenden Befehl gestartet:

java -jar start.jar

Ab Version 5 sollte man allerdings das mitgelieferte Startskript verwenden und dieses an die eigene Umgebung anpassen.
Um verschiedene Parameter zu überschreiben, können diese entweder dem Startskript als Argumente übergeben oder in der Datei solr.in.(cmd|sh) gesetzt werden.

Der einfachste Fall um Solr zu starten geht von folgender Struktur aus:

Solr Migration von 4 nach 5 Verzeichnis
Die Cores sind als Verzeichnisse, mit den entsprechenden Konfigurationen, unterhalb von ./server/solr angelegt. Damit werden die Defaulteinstellungen angenommen und es reicht der folgende Befehl um Solr zu starten:

./bin/solr start

Um zum Beispiel das solr.home Verzeichnis zu ändern und auf einem anderen Port zu starten, kann folgender Befehl verwendet werden:

./bin/solr start -s /data/solr-migration/ -p 8984

Weitere Änderungen von Solr 4 zu Solr 5

  • Solr 5 kann keine Cores lesen die mit Solr 3 angelegt worden sind. Hier ist es notwendig den Lucene IndexUpgrader, der in Solr 4.10 enthalten ist, laufen zu lassen.
  • Es ist mit Solr 4 nicht möglich einen Core zu öffnen, der mit Solr 5 geöffnet wurde.
  • SolrJ bildet jetzt die gesamte Funktionalität der CollectionsAPI ab.
  • Die Klassen für die Verbindung mit einem Solr wurden von Server in Client umbenannt, daher kann unsere SolrServerFactory nicht mehr verwendet werden.
    Dafür gibt es jetzt die neue SolrClientFactory.