Solr 4 Vorschau: SolrCloud, NoSQL und mehr
Die erste Alpha-Version von Solr 4 steht kurz bevor. Sie bringt leistungsstarke neue Funktionen, die bestehende Solr-basierte Anwendungen verbessern und neue Anwendungen ermöglichen, indem sie die Grenzen zwischen Volltextsuche und NoSQL weiter verwischen.
Die größte Gruppe von Funktionen trägt den Entwicklungs-Codenamen „Solr Cloud“ und beinhaltet die einfache Skalierbarkeit von Solr. Die verteilte Indizierung ohne Single Points of Failure wurde von Grund auf für Near Realtime (NRT) und NoSQL-Funktionen wie Realtime-Get, optimistisches Locking und dauerhafte Updates konzipiert.
Wir haben Apache ZooKeeper integriert, das grundsolide Projekt für die verteilte Koordination, das immun ist gegen Probleme wie das Split-Brain-Syndrom, das bei anderen handgerollten Lösungen auftritt. ZooKeeper verwaltet die Solr-Konfiguration und enthält die Cluster-Metadaten wie Hosts, Sammlungen, Shards und Replikate, die für die Bereitstellung einer elastischen Suchfunktion unerlässlich sind.
Wenn ein neuer Knoten hochgefahren wird, wird ihm automatisch eine Rolle zugewiesen, z.B. als zusätzliches Replikat für einen Shard. Ein geprellter Knoten kann eine schnelle „Peer-Synchronisation“ durchführen, indem er Updates mit seinen Peers austauscht, um sich selbst wieder auf den neuesten Stand zu bringen. Neue Knoten oder solche, die zu lange ausgefallen sind, erholen sich, indem sie den gesamten Index eines Peers replizieren und gleichzeitig alle neuen Aktualisierungen puffern.
Eine Aktualisierung kann an einen beliebigen Knoten im Cluster gesendet werden. Sie wird automatisch an den richtigen Knoten weitergeleitet und sofort auf eine Reihe anderer Knoten repliziert, um Fehlertoleranz, hohe Verfügbarkeit und Skalierbarkeit der Abfragen zu ermöglichen. Ebenso können Abfragen an jeden beliebigen Knoten in einem Cluster gesendet werden. Sie werden automatisch an die richtigen Knoten weitergeleitet und die Last auf die Replikate verteilt. Dieses Push-Modell der Replikation für ein einzelnes Dokument passt gut zu der nahezu in Echtzeit erfolgenden Unterstützung durch softCommit von Solr, um Aktualisierungen schnell für die Suche sichtbar zu machen.
Die SolrCloud-Wiki-Seite ist ein guter Ausgangspunkt, um mehr über die neuen verteilten Funktionen von Solr zu erfahren.
Solr 4 verfügt über weitere NoSQL-Funktionen für Anwendungen, die es als primären Datenspeicher verwenden möchten, darunter
- Dauerhaftigkeit von Aktualisierungen – Ein Transaktionsprotokoll stellt sicher, dass auch unbestätigte Dokumente nicht verloren gehen.
- Abrufen in Echtzeit – Die Möglichkeit, die neueste Version eines Dokuments abzurufen, ohne dass Sie eine neue Suche durchführen oder einen neuen Sucher öffnen müssen
- Versionierung und optimistisches Sperren – in Kombination mit Echtzeit-Get ermöglicht dies eine Lese-, Update- und Schreibfunktionalität, die sicherstellt, dass keine widersprüchlichen Änderungen gleichzeitig von anderen Clients vorgenommen werden.
Solr 4 bietet viele weitere Funktionen, wie z.B.
- Pivot-Facettierung – Mehrstufige oder hierarchische Facettierung, bei der die obersten Beschränkungen für ein Feld für jede oberste Beschränkung eines anderen Feldes gefunden werden.
- Pseudofelder – Die Möglichkeit, Felder mit Aliasen zu versehen oder Metadaten zu den zurückgegebenen Dokumenten hinzuzufügen, z. B. Funktionsabfragewerte und Ergebnisse räumlicher Entfernungsberechnungen.
- Eine Implementierung der Rechtschreibprüfung, die direkt aus dem Hauptindex heraus arbeiten kann, anstatt einen Sidecar-Index zu erstellen.
- Pseudo-Join-Funktionalität – Die Möglichkeit, eine Gruppe von Dokumenten auf der Grundlage ihrer Beziehung zu einer zweiten Gruppe von Dokumenten auszuwählen.
- Verbesserungen bei Funktionsabfragen, einschließlich bedingter Funktionsabfragen und Relevanzfunktionen.
- Neue Aktualisierungsprozessoren zur Erleichterung der Änderung von Dokumenten vor der Indizierung
Wir sind noch nicht fertig! Es sind bereits weitere Funktionen für Solr 4.x in Planung, darunter
- Aktualisierbare Dokumente – die Möglichkeit, Felder zu einem bestehenden Dokument hinzuzufügen, ohne das komplette Dokument erneut einsenden zu müssen.
- Dynamischeres Schema, einschließlich der Möglichkeit, neue Felder dynamisch hinzuzufügen
- Verbesserte Elastizität – die Möglichkeit, bestehende Shards in einem Cluster zu teilen
- Rack-Bewusstsein
- Index- und Shard-Aliase
Obwohl die Liste der Verbesserungen in Solr 4 zu lang ist, um sie hier alle zu beschreiben, überlasse ich Ihnen unter
zum Abschied einige Screenshots der neuen Admin-Seiten.