Apache Solr 5.0 Höhepunkte
Das mit Spannung erwartete Apache Lucene und Solr 5.0 wurde soeben veröffentlicht. Sie enthält eine Vielzahl neuer Funktionen, Stabilitätsverbesserungen und…
Das mit Spannung erwartete Apache Lucene und Solr 5.0 wurde soeben veröffentlicht. Sie enthält eine Vielzahl neuer Funktionen, Stabilitätsverbesserungen und Fehlerbehebungen.
Verbesserungen der Benutzerfreundlichkeit
Es wurden große Anstrengungen unternommen, um Solr benutzerfreundlicher zu machen, vor allem durch die Einführung von APIs und das Verbergen von Implementierungsdetails für Benutzer, die das nicht wissen müssen. Solr 4.10 wurde mit Skripten zum Starten, Stoppen und Neustarten der Solr-Instanz veröffentlicht, 5.0 geht in Bezug auf die Möglichkeiten dieser Skripte noch weiter. Die Skripte kopieren jetzt zum Beispiel ein Configset bei der Erstellung einer Sammlung, so dass das Original nicht verändert wird. Es gibt auch ein Skript zum Indizieren von Dokumenten sowie die Möglichkeit, Sammlungen in Solr zu löschen. Das ist zum Beispiel alles, was Sie tun müssen, um SolrCloud zu starten, lucidworks.com zu indizieren, zu durchsuchen, was indiziert wurde, und die Sammlung zu löschen.
bin/solr start -e cloud -noprompt
bin/post -c gettingstarted https://lucidworks.com
open http://localhost:8983/solr/gettingstarted/browse
bin/solr delete -c gettingstarted
Ein weiterer wichtiger Hinweis für neue Benutzer ist, dass Solr nicht mehr über die Standardsammlung1 verfügt und stattdessen mit mehreren Beispielkonfigurationen und -daten geliefert wird.
Solr verwalten
Wie alles andere ist auch die Verwaltung von Solr, sowohl was die Anwendungskonfiguration als auch die Systeme betrifft, einfacher geworden. Es ist jetzt möglich, eine Reihe von Parametern in Solr zu definieren und sie zur Anfragezeit zu verwenden. Dies ähnelt dem Abschnitt defaults in solrconfig.xml, aber was wirklich gut ist, ist, dass diese Parametersätze live mit einer HTTP-API geändert werden können, ohne dass ein Neuladen des Kerns oder der Sammlung erforderlich ist. Darüber hinaus können die Parameter des Request Handlers über initParams gemeinsam genutzt werden, die auch das Überschreiben und Erweitern von Parametern unterstützen.
Die Schema-API verbirgt viele Implementierungsdetails hinter den Kulissen, so dass es für Benutzer wirklich einfach ist, Feldtypen und dynamische Felder hinzuzufügen. Die Config-API ermöglicht die Bearbeitung allgemeiner Solr-Konfigurationswerte, wobei die Implementierungsdetails (xml lesen) hinter den Kulissen bleiben.
Im Bereich der Collections API ermöglicht die neue BALANCESHARDUNIQUE Collections API eine gleichmäßige Verteilung von Replikat-Eigenschaften, während andere APIs durch zahlreiche Fehlerbehebungen robuster geworden sind.
Solr 5.0 protokolliert jetzt den Wiedergabestatus des Transaktionsprotokolls und sorgt dafür, dass Benutzer während eines zeitaufwändigen Knotenneustarts nicht mehr im Unklaren sind, was vor sich geht. Außerdem unterstützt es optional die Protokollierung von langsamen Anfragen.
Für alle Systemverantwortlichen und DevOps, die Solr-Cluster bereitstellen und verwalten, wird Solr 5.0 jetzt mit Skripten ausgeliefert, die die Installation und den Betrieb von Solr als Dienst auf einer *nix-Plattform unterstützen.
Skalierbarkeit
Solr 5.0 skaliert jetzt besser mit einer großen Anzahl von Sammlungen, indem die Art und Weise, wie der Cluster-Status gespeichert wird, geändert wurde. Bis zur vorherigen Version wurde der gesamte Status in eine einzige Datei geschrieben, die dann von jedem Knoten überwacht und bei jeder Änderung aktualisiert wurde. Ab dieser Version hat jede Sammlung standardmäßig ihren eigenen Cluster-Status, was bedeutet, dass jeder Knoten nur noch die Cluster-Status überwacht, die für ihn von Bedeutung sind.
Eine verbesserte Solr-ZooKeeper-Kommunikation, bessere Standard-Timeouts und eine Beschleunigung der Overseer-Operationen tragen ebenfalls dazu bei, dass SolrCloud einfacher und zuverlässiger skaliert.
Stabilität
Solr erlaubt jetzt eine Konfiguration, die steuert, wie Solr im Verborgenen läuft. Der Replication Handler verfügt jetzt über eine Option zur Drosselung der Replikationsbandbreite, um zu verhindern, dass die gesamte interne Bandbreite verbraucht wird. timeAllowed, ein Parameter, der schon seit einiger Zeit in Solr existiert, unterbricht jetzt auch Anfragen während der Abfrageerweiterung. Früher konnte eine Wildcard-Abfrage trotz der Angabe eines timeAllowed-Wertes ablaufen und die gesamte CPU verbrauchen, da dieser Wert nur während der Dokumentsammlung beachtet wurde.
Verteilte IDF
Eine Funktion, die vor fast 5 Jahren zum ersten Mal vorgestellt wurde und für die viele Mitwirkende viel Zeit aufgewendet haben, die Unterstützung für verteilte IDF, wurde ebenfalls mit Solr 5.0 veröffentlicht. Es werden 4 Implementierungen unterstützt, darunter sowohl lokale als auch globale Statistiken. Standardmäßig ist die Verwendung von LocalStats eingestellt, d.h. es werden keine globalen IDF-Werte verwendet, aber Sie können eine andere Implementierung auswählen, indem Sie den Wert in solrconfig.xml festlegen.
Komponente Statistik
Die Komponente Stats in Solr ermöglicht jetzt die Berechnung von Statistiken für beliebige Funktionen. Sie erlaubt es auch, Statistiken an Pivots zu hängen, d.h. jede Facette kann aufgefordert werden, mit Hilfe von Tags Statistiken zu berechnen.
Und mehr
Das neue DateRangeField ermöglicht die Indizierung von Datumsbereichen, insbesondere von solchen mit mehreren Werten. Außerdem können räumliche Felder, die bisher Gradangaben für die Berechnung der Entfernung erforderten, jetzt auch Kilometer und Meilen akzeptieren, was die Verwendung erleichtert.
Der MoreLikeThis Query Parser hilft beim Abrufen von Dokumenten, die einer bestimmten Dokument-ID ähnlich sind. Obwohl er die bereits vorhandene MoreLikeThis-Logik von Lucene verwendet, unterstützt er die Ausführung im SolrCloud-Modus.
Die Blob-Storage-API ermöglicht es Benutzern, benutzerdefinierte Handler-Jars in Solr hochzuladen und diese dann mit der Config-API zu registrieren, was die Registrierung und Verteilung von benutzerdefinierten Handlern in einem Solr-Cluster sehr einfach macht.
Und das ist noch nicht alles: SolrJ bietet jetzt erstklassige Unterstützung für die Collections API. Außerdem wurde Tika jetzt auf 1.7 aktualisiert, was eine Unterstützung für das Parsen von Outlook PST- und MATLAB-Dateien bedeutet.
Jepsen Tests
Zwischen der letzten und dieser Version von Solr haben wir bei Lucidworks, insbesondere Shalin Shekhar Mangar, daran gearbeitet, SolrCloud mithilfe der Jepsen-Tests zu testen. Die Ergebnisse fielen gut aus und bewiesen, dass Solr nicht nur eine funktionsreiche Suchmaschine ist, sondern auch eine, auf die man sich verlassen kann.
Neue Identität
Es ist zwar nicht Teil des CHANGE-Protokolls, aber Solr erhielt eine völlig neue Identität, die sich nicht nur auf ein tolles Logo und eine Website beschränkte.
Was kommt als Nächstes?
So wie es aussieht, hat Solr 5.1 bereits interessante Funktionen und Korrekturen enthalten. Mit Funktionen wie der räumlichen 2D Heatmap-Facettierung auf RPT-Feldern, der REBALANCESHARDS Collections API und vielem mehr scheint es bereits eine ganze Reihe neuer Funktionen zu geben.
Lucene 5.0
Und auch wenn dieser Beitrag bereits sehr lang geworden ist, ist es wichtig zu wissen, dass Solr mit jeder neuen Version auch alle Verbesserungen von Lucene standardmäßig mitbringt. Insbesondere 5.0 bringt unter anderem eine höhere Indexsicherheit, eine geringere Heap-Nutzung, Suggestoren für mehrwertige Felder und eine automatische I/O-Drosselung für ConcurrentMergeScheduler. Mehr über die Highlights von Lucene 5.0 erfahren Sie im Blog von Mike McCandless hier.
Testen Sie es jetzt mit dem offiziellen Referenzhandbuch für Solr 5.0
Wenn eine der oben genannten Funktionen Sie begeistert und Sie Solr 5.0 noch nicht ausprobiert haben, sollten Sie es jetzt tun. Sie können es hier herunterladen.
Um Ihnen beim Ausprobieren aller neuen Funktionen zu helfen, wurde zum ersten Mal auch das versionsspezifische offizielle Solr-Referenzhandbuch mit dem Code veröffentlicht. Sie können es hier herunterladen.