Solrs Echtzeit-Get
Solr hat mit der Hinzufügung von Realtime Get einen weiteren Schritt zur Erweiterung seiner NoSQL-Datenspeicherfähigkeiten gemacht.
Hintergrund
Wie die Leser wahrscheinlich wissen, funktioniert die Lucene/Solr-Suche auf der Grundlage von Point-in-Time-Snapshots des Indexes. Nachdem Änderungen am Index vorgenommen wurden, muss ein Commit (oder ein neues Near Real Time softCommit) durchgeführt werden, bevor diese Änderungen sichtbar werden. Selbst mit den neuen NRT-Fähigkeiten (Near Real Time) von Solr ist es wahrscheinlich nicht ratsam, den Searcher mehr als einmal pro Sekunde neu zu öffnen. Es gibt jedoch einige Anwendungsfälle, in denen die absolut aktuellste Version eines Dokuments benötigt wird, und nicht nur eine sehr aktuelle Version. Hier kommt die neue Echtzeitfunktion von Solr zum Einsatz, mit der die neueste Version eines Dokuments abgerufen werden kann , ohne dass der Sucher erneut geöffnet werden muss und der normale Suchverkehr unterbrochen werden muss.
Die Realtime-Get-API
Der Realtime Get Handler wird unter der URL /get registriert. Ein Beispiel für eine Anfrage wie
http://localhost:8983/solr/get?id=SOLR1000&fl=id,name&wt=json
gibt eine Antwort wie
{"doc":{"id":"SOLR1000","name":"Solr, the Enterprise Search Server"}}
Beachten Sie, dass der optionale Parameter fl ( Feldliste) wie üblich funktioniert und Ihnen die Auswahl der Felder ermöglicht, die Sie zurückgeben möchten.
Es gibt auch eine Echtzeit-Get-Komponente, die in jeden Request Handler eingefügt werden kann, auch in den Standard Request Handler.
Wie es funktioniert
Die Funktion Realtime Get verwendet die Transaktionsprotokollierung, um unbestätigte Aktualisierungen des Indexes zu verfolgen. Wenn eine Abrufanfrage für ein Dokument eingeht, wird dieses Protokoll zuerst geprüft und, falls gefunden, von dort abgerufen. Wenn es nicht gefunden wird, wird der zuletzt geöffnete Sucher verwendet, um das Dokument abzurufen. Die Überprüfung des Protokolls ist superschnell, und die IO-Lesevorgänge aus dem Protokoll sind für maximale Skalierbarkeit vollständig gleichzeitig.
Probieren Sie es aus
Laden Sie einen aktuellen Nightly-Build von Solr 4.0-dev herunter und folgen Sie der Schnellstartanleitung im Solr-Wiki. Feedback auf der Mailingliste solr-user ist immer willkommen!