Solr-Entwicklungstagebuch: Solr und Fast-Echtzeit-Suche

Der UpdateHandler von Solr ist ein wenig verkrustet. Viele der Implementierungsdetails sind auf alte, müde und entfernte Anforderungen und Funktionen zurückzuführen. Für diejenigen, die es nicht wissen: Dokumente, die Sie zu Solr hinzufügen, werden vom UpdateHandler tatsächlich in den Index aufgenommen.

Es gibt zwei Details der aktuellen UpdateHandler-Implementierung, die besonders einschränkend sind.

Erstens verwendet Solr seine eigenen Sperren auf Lucene und fügt damit eine weitere, unnötige Ebene von Sperren auf dem IndexWriter hinzu. Diese Sperren hatten einmal eine Daseinsberechtigung, aber jetzt sind sie überflüssig. Es gibt keinen Grund, das Hinzufügen weiterer Dokumente zu blockieren, während eine Übertragung durchgeführt wird, aber genau das tut Solr derzeit. Das Entfernen dieser Sperren wird die Komplexität und die Wartungskosten reduzieren, da wir nun „größtenteils“ nur noch die Sperren von Lucene verwenden können. Solr wird auch leichter Verbesserungen von Lucene in diesem Bereich übernehmen können.

Zweitens wird Solr aufgrund historischer Anforderungen bei jeder Übertragung einen neuen IndexWriter schließen und öffnen. Das bedeutet, dass bei jeder Übertragung gewartet wird, bis alle Threads zur Zusammenführung von Indizes im Hintergrund beendet sind. Das kann eine nicht unerhebliche Zeitspanne sein – und während dieser Zeit können Sie dem Index keine Dokumente hinzufügen. Außerdem können Sie die Dokumente, die gerade dem Index hinzugefügt wurden, nicht sehen, bis die Zusammenführung und die Übertragung abgeschlossen sind. Eigentlich sollte der UpdateHandler einfach nur eine Übergabe durchführen und einen neuen SolrIndexSearcher öffnen – während die Hintergrund-Threads fröhlich *im Hintergrund* zusammengeführt werden.

Es gibt auch noch ein paar andere Dinge, die mich stören.

Nun, ich werde sie jetzt alle beheben. Es ist an der Zeit, die Kruste zu entfernen und die Lucene-Unterstützung für Solr nahezu in Echtzeit einzuführen. Sie sollten in der Lage sein, mit Solr eine neue Ansicht für kürzlich hinzugefügte Inhalte in einem Bruchteil der jetzt möglichen Zeit zu öffnen. Es ist nicht richtig, dass Sie mit SolrCore jonglieren müssen, um Indexaktualisierungen nahezu in Echtzeit zu versuchen – es ist an der Zeit, die Dinge einfacher zu machen. Es ist an der Zeit, die Dinge schneller zu machen.

Und wenn Lucene seine Echtzeitunterstützung beendet und IndexWriter-Flushes nicht mehr das Hinzufügen von Dokumenten blockieren, wird Solr noch besser in der Lage sein, die Vorteile zu nutzen, wo immer es geht. Es bleibt noch mehr zu tun – noch ist nicht alles, was Solr tut, pro Segment, und die Replikation ist derzeit nicht sehr echtzeitfreundlich – aber wir werden die Dinge in die richtige Richtung lenken.

Ich nehme diese Änderungen hier in Angriff: https://issues.apache.org/jira/browse/SOLR-2193

– Mark

You Might Also Like

Der Stand der generativen KI 2025: 3 Fragen, um Ihre Bereitschaft für agenturische KI zu verstehen

Wie gut sind Unternehmen auf agentenbasierte KI vorbereitet? Die Daten von Lucidworks...

Read More

Wir geben unsere Gewinner des Superstars of Search Award 2025 bekannt: Mouser, TE, und Coppel

Wir feiern 3 unglaubliche Lucidworks-Kunden, die ihre Sucherfahrung verändert und hervorragende Geschäftsergebnisse...

Read More

Was der U.S. AI Action Plan für E-Commerce-Unternehmen bedeutet

Der KI-Aktionsplan des Weißen Hauses signalisiert "Volldampf voraus" - aber neue Daten...

Read More

Quick Links