Blog der SHI GmbH

Solr 6.1 Feature-Test

Solr 6.1 Feature-Test – Mehr Toleranz bei Updateprozessoren

TolerantUpdateProcessor

Seit Mitte Juni steht Solr in der Version 6.1.0 zum Download bereit. Da es sich nur um ein Minor Release handelt, halten sich die Neuerungen in Grenzen. Ein zusätzliches Feature verdient es dennoch, erwähnt zu werden – die TolerantUpdateProcessorFactory. Wie der Name schon verrät handelt es sich hierbei um einen neuen Updateprozessor, der sich ab sofort mit in die diversen Update-Ketten einreihen lassen kann.

Der neue Updateprozessor dient weniger selbst der Veränderung eingehender Daten, als dass er vielmehr die Fehlertoleranzgrenzen anderer Prozessoren in der Kette festlegt. Damit ist es beispielsweise möglich, uninteressante Datensätze schlichtweg zu ignorieren statt komplizierte Bedingungen zu formulieren.

Mit einem zusätzlichen Parameter „maxErrors“ kann außerdem festgelegt werden, wie tolerant der Prozessor tatsächlich sein soll. Ein Angeben von „maxErrors=10“ bricht die Indexierung beim 11. Fehler ab und sendet die entsprechende Meldung.

Beispielhafte Anwendung

Zur Veranschaulichung hier ein kleines Beispiel: Es sei der Datensatz

Id

Sammlung

1

The Avengers

Ironman

Thor

2

 

3

Superman

Batman

4

Aquaman

5

 

zu indexieren. Untereinander geschriebene Begriffe sind als einzelne Werte für ein multiValued-Feld zu deuten. Definiert sei nun eine UpdateProcessorChain „split“, welche einen Updateprozessor beinhaltet, der anhand eines Skriptes die Werte nacheinander in das multiValued-Feld „Sammlung“ schreibt. Bei dem Versuch, Dokument 2 zu verarbeiten wird der Prozessor seine Arbeit mit einer Fehlermeldung niederlegen, da er keine Eingangsdaten für das Feld „Sammlung“ bekommt.

Schaltet man nun den neuen Toleranz-gebietenden Prozessor in der Kette vor, so werden bei der Indexierung die Datensätze 2 und 5 gänzlich ignoriert und die anderen drei Datensätze werden vollständig und ohne Fehlermeldung in den Index überführt. Die UpdateProcessorChain könnte nun also wie folgt aussehen:

Vorsicht!

Jegliche Datensätze, welche in irgendeinem auf den TolerantUpdateProcessor folgenden Prozessor zu Fehlern führen würden, werden bei der Indexierung ignoriert! In dem genannten Beispiel ist das offensichtlich gewollt, da die Datensätze 2 und 5 gänzlich uninteressant sind. Doch Sie sollten sich vor der Verwendung des neuen Prozessors unbedingt Gedanken machen, ob diese Vorgehensweise auch für Ihre Daten angewandt werden kann.

Fazit

Der neue TolerantUpdateProcessor in Solr 6.1.0 ist ein einfaches Mittel, um Programmier-Aufgaben zum Abfangen von Fehlern zu umgehen, ist aber mit Bedacht einzusetzen.

Weitere Information zu Updateprozessoren finden Sie unter https://cwiki.apache.org/confluence/display/solr/Update+Request+Processors.

Patricia Kraft, Bereichsleitung Search & Analytics

Patricia Kraft