Solr-Tokenizer

Solr Tokenizer: Wann verwende ich was?

Will man Daten durchsuchbar machen, so ist ein essentieller Bestandteil der Vorverarbeitung, dass die in den Daten enthaltenen Texte sinnvoll zerlegt werden. Nur so kann sichergestellt werden, dass Nutzer:innen nicht immer den gesamten Text in die Suche eingeben müssen, sondern auch nach einzelnen Begriffen suchen können. In Apache Solr wird diese Aufgabe von sogenannten Tokenizern übernommen, die wir im Folgenden etwas näher beleuchten wollen.

Inhaltsverzeichnis

  1. Was sind Solr Tokenizer?
  2. Tokenizer für Datenfelder: Leerzeichen zum Treffen von Begriffen
  3. Tokenizer für Fließtext: Leer-, Sonder- und Interpunktionszeichen zum Begriffstrennen
  4. Tokenizer für Identifizierer: Individuelle Zeichenketten zum Begriffe trennen
  5. Tokenizer für andere Daten

Was sind Solr Tokenizer?

Daten, die mit Solr durchsucht werden sollen, müssen zunächst indexiert werden. Auf dem Weg in diesen Index durchlaufen sie eine Reihe an Verarbeitungsschritten, um optimal für den jeweiligen (Search) Use Case abgespeichert zu werden. Diese Verarbeitungsschritte bezeichnet man in Solr als „Analysekette“. Neben verschiedenen Filtern findet sich stets genau ein Tokenizer in jeder Analysekette. Er sorgt dafür, dass der eingehende Text in seine Einzelteile zerlegt wird.

Solr Tokenizer: Wann verwende ich was?

Doch wann ist ein Begriff innerhalb des Textes zu Ende und wann beginnt der nächste?

Tokenizer für Datenfelder: Leerzeichen zum Trennen von Begriffen

Bei Datenfeldern wie Namen oder Produktbezeichnungen werden die einzelnen Begriffe meistens durch ein Leerzeichen voneinander getrennt. Hier bietet es sich an, auf den WhiteSpaceTokenizer in Solr zu setzen. Dieser (eher simple) Tokenizer erkennt die Leerzeichen im Text und zerlegt die Eingabe entsprechend.

Eingabe:         „Blogbeitrag zum Thema Tokenizer in Solr“

Wann sollte ich den WhiteSpaceTokenizer nicht verwenden?

  • Wenn der Text keine Leerzeichen beinhaltet.
  • Wenn es weitere Zeichen gibt, die zwei Begriffe voneinander trennen.

Tokenizer für Fließtext: Leer-, Sonder- und Interpunktionszeichen zum Begriffstrennen

In Fließtexten wie Beschreibungen, Artikeln oder Kommentaren sind Begriffe üblicherweise ebenfalls durch Leerzeichen voneinander getrennt. Aber auch Satzzeichen ( . , ; ? ! etc.) oder andere Sonderzeichen ( & @ – etc.) können den Beginn eines neuen Begriffes anzeigen und so als Separator dienen. Deshalb wird für Fließtext meistens der StandardTokenizer in Solr genutzt.

Eingabe:         „Wird mit dem Standard-Tokenizer an Sonderzeichen&Satzzeichen gesplittet? Ja!“

Wann sollte ich den StandardTokenizer nicht verwenden?

  • Wenn Sonderzeichen bzw. Interpunktionszeichen beibehalten werden sollen (die Trennzeichen werden bei der Tokenisierung entfernt, nur Punkte ohne zusätzliches Leerzeichen „so.etwa“ werden beibehalten).
  • Wenn ich genau definieren möchte, welche Zeichen ein Separator sind und welche nicht.

Tokenizer für Identifizierer: Individuelle Zeichenketten zum Begriffe trennen

IDs, SKUs, Artikelnummern oder andere Identifizierer folgen ganz unterschiedlichen Mustern. Für manche Datentöpfe werden reine Zahlenfolgen verwendet, für andere eine Kombination aus Zahlen, Sonderzeichen und Buchstaben. Und wieder andere sind fast schon wie eigene Geheimcodes aufgebaut. Sie alle haben aber eines gemeinsam: Es gibt einen regulären Ausdruck, über den ihr Aufbau beschrieben werden kann.

Über diesen regulären Ausdruck (oder auch „RegEx“ für „Regular Expression“) können die Identifizierer innerhalb von Texten erkannt und extrahiert werden. Das macht sich z.B. der PatternTokenizer zunutze und trennt die Eingabe nicht einfach nur auf, sondern entfernt im gleichen Zug auch alles, was nicht benötigt wird. Wir empfehlen allerdings, das Pattern-Matching noch vor dem Tokenizer in einem CharFilter abzubilden. Auch so bleiben nur die relevanten Teile übrig und ein KeywordTokenizer generiert daraus genau ein Token.

Eingabe (CharFilter*): „Artikel-Nummer: 12-4564“
Ausgabe (CharFilter*): „12-4564“

Eingabe (KeywordTokenizer): „12-4564“

Ausgabe:

Tokenizer für andere Daten

Neben den genannten WhiteSpace-, Standard- und Pattern-Tokenizern gibt es noch weitere Möglichkeiten, Begriffe voneinander zu trennen. Diese Tokenizer sowie die übrigen Bestandteile von Analyseketten in Solr lernen Sie in unserer Solr-Schulung kennen. Details und Teilnahmeoptionen finden Sie in unserem Schulungsangebot.

Sie habe Fragen zu Solr oder benötigen Unterstützung?
Patricia Kraft, Bereichsleitung Search & Analytics

Patricia Kraft