Solr 2014: Ein Jahresrückblick
In den letzten Jahren hat sich Apache Solr in einem ziemlich aggressiven Tempo entwickelt. 2013 markierte das Debüt von SolrCloud:…
In den letzten Jahren hat sich Apache Solr in einem ziemlich aggressiven Tempo entwickelt. 2013 markierte das Debüt von SolrCloud: eine neu konzipierte, wirklich verteilte Version von Solr. 2014 reifte Solr, insbesondere SolrCloud, mit jeder neuen Version in Bezug auf Benutzerfreundlichkeit, vorhersehbare Skalierbarkeit und Zuverlässigkeit in Produktionsumgebungen.
Abgesehen von der direkten Arbeit an Solr, das auf Lucene aufbaut und zusammen mit diesem veröffentlicht wird, bindet Solr die ständigen Verbesserungen und neuen Funktionen von Lucene mit ein.
Benutzerfreundlichkeit – Einfache Nutzung und Verwaltung
Bei Solr beschränkt sich die Benutzerfreundlichkeit nicht nur auf die ersten Schritte, sondern umfasst die gesamte Erfahrung von Anfang bis Ende. Das heißt, 2014 war das Jahr, in dem wir Solr auf eine ganz neue Art und Weise betrieben und verwaltet haben. Lassen Sie mich zunächst über die bin-Skripte sprechen. Während die Skripte den Einstieg in Solr wirklich einfach machen, wurden sie auch erweitert, um eine grundlegende Solr-Einrichtung zu verwalten. Von der Erstellung einer Sammlung bis zur Indizierung von Daten kann nun alles über ein Skript im bin-Verzeichnis erfolgen. Dadurch wird die Einrichtung von Solr so weit vereinfacht, dass die folgenden Zeilen genügen, um Solr von Grund auf zu starten, zu indizieren und zu durchsuchen:
bin/solr start -e cloud -noprompt
bin/post gettingstarted https://lucidworks.com
open http://localhost:8983/solr/gettingstarted/browse
Die Skripte decken zwar die ersten Schritte ab, aber es wurde noch viel mehr hinzugefügt, um den Übergang zur Produktion und sogar die Verwaltung eines bestehenden Clusters zu vereinfachen. Von der Einführung des schemalosen Modus (oder des datengesteuerten Modus, wie manche es nennen) bis hin zu verwalteten Schema-APIs, die keine Kenntnisse der Implementierungsdetails (xml) mehr erfordern, ist die Entwicklung des Schemas für Ihre Daten jetzt ein Kinderspiel geworden.
Zur weiteren Vereinfachung der Bedienung unterstützt solrconfig jetzt die Bearbeitung allgemeiner Werte über APIs, die sich an der Bulk-Schema-API orientieren und die Implementierungsdetails abstrahieren.
Es ging nicht nur darum, Implementierungsdetails hinter die Kulissen zu verlagern und sie hinter Bash-Skripten und API-Aufrufen zu verstecken. Die Unterstützung für die automatische Generierung eindeutiger Schlüssel, wenn diese in einem Dokument fehlen, ist eine weitere Funktion, die die Dateneingabe für die Benutzer erleichtert.
Auch die Möglichkeit, benutzerdefinierte JSON-Dokumente gemäß der Benutzerkonfiguration umzuwandeln und zu indizieren, ist für Benutzer mit JSON-Daten sehr praktisch. Die Konfiguration wird zusammen mit der Aktualisierungsanfrage übergeben.
SolrCloud und Sammlungs-APIs
Mit den Veröffentlichungen im Jahr 2014 wurden auch neuere Collection APIs eingeführt. Zum Beispiel die zum Migrieren von Dokumenten (MIGRATE) und zum Verwalten von SolrCloud-Clustern durch Hinzufügen oder Löschen von Repliken (ADD/DELETE REPLICA). APIs zum Überwachen und Abrufen von Statistiken des Clusters und des Overseers sind ebenfalls sehr nützlich für die Verwaltung von SolrCloud-Clustern.
Skalierbarkeit und Optimierungen
2014 wurde Solr in wirklich großem Maßstab eingesetzt – sowohl in Bezug auf die Datenmenge als auch auf den Datenverkehr – und löste dabei komplizierte Anwendungsfälle. Es gab mehr als nur ein paar architektonische Änderungen und neue Funktionen, die Solr bei der Skalierung auf Datengrößen helfen, die in die aktuelle Generation der Datenverarbeitung gehören.
Unter anderem ist es Noble Paul zu verdanken, dass sich Solr dank seiner Bemühungen um die Aufteilung des Clusterstatus in SolrCloud zu einem hoch skalierbaren System entwickelt hat. Zusammen mit den Änderungen zur Unterstützung asynchroner Aufrufe und der Multi-Thread-Verarbeitung hat dies Solr in die Lage versetzt, große, sich gegenseitig ausschließende Collection API-Aufrufe wirklich schnell zu verarbeiten.
Das dreistufige Dokumenten-Routing in SolrCloud hilft Benutzern auch dabei, Dokumente an einem gemeinsamen Ort zu platzieren und ermöglicht es Solr, je nach Anfrage selektive Shards abzufragen, was die Skalierung von großen Setups erleichtert.
HDFS ist ein wichtiger Bestandteil des „Big Data“-Ökosystems und Solr hat im Laufe des Jahres Unterstützung für HDFS eingeführt und verbessert. Dazu gehören das Erstellen und Hosten von Indizes auf HDFS, die Unterstützung von Funktionen wie das automatische Hinzufügen von Repliken auf gemeinsam genutzten Dateisystemen und die verbesserte HDFS-Unterstützung für Solr.
Eigenschaften
CursorMark: Verteiltes tiefes Paging
Dieses Jahr begann damit, dass Solr eine Cursor-basierte Implementierung für tiefes Paging bereitstellte, die mit beliebiger Sortierung funktioniert. Dies ermöglicht es Benutzern, Ergebnisse zu exportieren oder wirklich tief zu blättern, was bis dahin traditionell ineffizient war.
TTL: Automatischer Verfall für Dokumente
Ein weiterer der zahlreichen Beiträge zu Solr war die Möglichkeit, Dokumente auf der Grundlage eines Verfallsfeldes oder einer bei der Indizierung festgelegten Time-to-Live (TTL) regelmäßig zu löschen. Dies ermöglicht es Benutzern, Dokumente nach ihrem Ablaufdatum automatisch aus der Sammlung zu löschen.
Verteilte Pivot-Facettierung
In diesem Jahr wurde die verteilte Pivot-Facettierung – ein Problem, das vor über 3 Jahren eröffnet wurde, über 75 Beobachter hatte und mehr als 20 Mitwirkende erforderte – von Hossman übernommen. Diese Zahlen sprechen sowohl für die Komplexität der Funktion als auch für die Gemeinschaft rund um Solr.
75 Beobachter und 56 Stimmen, @_hossman hat gerade das umfangreiche Solr-Feature Distributed Pivot Faceting https://t.co/gE6s41wMAl #Solr
geschlossen – Mark Miller (@heismark) August 20, 2014
Abfrage-Parser
Solr unterstützt zahlreiche Abfrageparser und neuere erleichtern die Arbeit für bestimmte Anwendungsfälle. In diesem Jahr wurde der SimpleQueryParser von Lucene in Solr über den Abfrageparser „Simple“ bereitgestellt. Ein weiterer Neuzugang war TermsQueryParser, der auf den Anwendungsfall der Sicherheitsfilterung abzielt, bei dem es um die Filterung von Begriffen geht, die bis dahin eine boolesche Abfrage erforderte, die oft an die Grenze der maximalen Klausel stößt und außerdem zu einer Bewertung der Treffer führt. Der MLTQParser, der noch nicht veröffentlicht wurde, hilft Benutzern bei der Suche nach Dokumenten, die einem bereits existierenden Dokument ähnlich sind, und zwar anhand der eindeutigen ID eines Dokuments.
Verteilte IDF
Ein weiteres langwieriges Thema, an dem mehrere Personen mitgewirkt haben und das insgesamt fast 5 Jahre in Anspruch genommen hat, war „Distributed IDF„. Es wird mit der nächsten Version von Solr, Solr 5.0, erscheinen und Benutzern bei einer ungleichmäßigen Verteilung von Begriffen über ihre Daten helfen.
Der Apache Solr Weihnachtsmann kam dieses Jahr früher und schenkte uns Distributed IDF, weil wir brav waren! https://t.co/IMiA981or7 #solr #solrcloud – Otis Gospodnetić (@otisg) December 22, 2014
Solr Skala-Toolkit
Die Bereitstellung von SolrCloud war nicht trivial, insbesondere wenn es um groß angelegte Implementierungen geht. Anfang 2014 investierte Lucidworks Zeit, Geld und Ressourcen, um das Solr Scale Toolkit für die bequeme Bereitstellung und Verwaltung von SolrCloud auf Cloud-basierten Plattformen wie AWS zu entwickeln und als Open-Source zu veröffentlichen. Dieses Toolkit wurde weiter verbessert, um auch nicht Cloud-basierte Setups zu unterstützen.
Testen Sie
Die Entwicklung von SolrCloud wurde zu einem großen Teil durch Tests vorangetrieben. Nicht nur für Endanwender, die Solr in die Produktion bringen, sondern weit darüber hinaus. Wir bei Lucidworks haben ausgiebig in das Testen von SolrCloud investiert, sei es mit dem Solr Scale Toolkit, um 1000 Sammlungen einzurichten und Milliarden von Dokumenten zu indizieren, während wir rollierende Neustarts ausprobierten, um sicherzustellen, dass das System stabil bleibt, oder durch die beeindruckenden Jepsen-Tests von Shalin Shekhar Mangar, um zu bestätigen, dass Solr keine Daten verliert. Dies ist, neben der verbesserten Junit-Testabdeckung für Solr, ein Teil des Projekts.
https://twitter.com/aphyr/status/543547826756530176
Kein Krieg mehr
Mit Solr 5 wird Solr offiziell nur noch als eigenständige Anwendung unterstützt. Ein ‚war‘ wird nicht mehr mit der Distribution ausgeliefert. Da der Servlet-Container zu einem Implementierungsdetail wird, ändert sich die Art und Weise, wie Solr bisher eingerichtet wurde.
Solr 5
Die letzten Monate des Jahres 2014 standen ganz im Zeichen von Solr 5.0. Gleich nach dem Erscheinen von 4.10 wurde beschlossen, die nächste Version „Version 5.0“ zu nennen. Sie unterscheidet sich deutlich von der Version 4.0, da es sich weniger um eine Änderung der Architektur als vielmehr um eine ausgereifte Version handelt. So wie es aussieht, ist es bereits mit einer Menge guter Dinge ausgestattet. Von verbesserten bin-Skripten, mit denen Sie viel mehr tun können, bis hin zu mehr SolrCloud Management Collection API-Aufrufen. Von der Aufteilung von clusterstate bis zur Festlegung von Abfrage-Timeouts – einige der Dinge, über die ich oben geschrieben habe, werden erst mit Solr 5.0 veröffentlicht, wurden aber bereits 2014 umgesetzt.
Gemeinschaft
Obwohl wir gesehen haben, wie viele Funktionen, Tests und Verbesserungen der Benutzerfreundlichkeit in Solr eingeflossen sind, dürfen wir die neue Solr Website und das neue Logo nicht verpassen. Vielen Dank an Francis Lukesh für die Erstellung und an alle anderen, die daran mitgewirkt haben, die Schrauben anzuziehen und das Logo einzuführen. Und schließlich sagen die Zahlen unten mehr darüber aus, wie sich Solr als Projekt im letzten Jahr entwickelt hat.

https://www.openhub.net/p/solr
