Solr SpellChecking

Solr SpellChecking-Komponente: Wie Ihre Nutzer:innen trotz Tippfehlern finden, was sie suchen

Es kommt bei der Nutzung von Suchfunktionen häufig vor, dass die Nutzer:innen ihre Suchanfragen fehlerhaft eingeben. Egal, ob es sich um typische Tippfehler wie „Kate“ statt „Karte“ oder das Vergessen eines Leerzeichens, wie „DeutscheBahn“ statt „Deutsche Bahn“ handelt, lassen sich solche Probleme anhand der sogenannten SpellChecking-Komponente in Solr beheben. So vermeiden Sie ganz einfach Nulltreffer-Suchen und frustrierte Nutzer:innen.

Wann ist ein Schreibfehler ein Problem in Solr?

Als Tippfehler im Kontext der Suchmaschine lassen sich Schreibweisen definieren, die als Suchanfrage von Nutzer:innen formuliert werden, jedoch von der Schreibweise im Solr-Index abweichen. Ohne Eingreifen kommt es dadurch zu fehlenden oder anderen Suchergebnissen, da Suchmaschinen auf eine exakte Übereinstimmung von Suchbegriff und indexierten Daten achten. Beispielsweise ist auch die Groß-/Kleinschreibung als Tippfehler zu betrachten (etwa „donau“ statt „Donau“) oder fehlende Wortzeichen wie Bindestrich („LEDLampe“ statt „LED-Lampe“). Einige solcher Probleme können wir bereits in der sogenannten Analyse anhand unterschiedlicher Solr-Filter bzw. CharFilter lösen, etwa dem LowerCaseFilter. Mehr zum Thema CharFilter erfahren Sie in diesem Blogbeitrag. Bei allen verbleibenden Problemen hilft die SpellChecking-Komponente in Solr und ermöglicht so eine höhere Fehlertoleranz. In diesem Beitrag möchte ich daher einerseits allgemein erklären, was sich hinter der SpellChecking-Komponente verbirgt und außerdem zwei relevante SpellChecking-Varianten vorstellen: den DirectSolrSpellChecker und den WordBreakSolrSpellChecker.

Was ist die SpellChecking-Komponente?

Die SpellChecking-Komponente versteht sich als eine Solr-Komponente, die die Rechtschreibung der Suchanfragen überprüft und gegebenenfalls Korrekturvorschläge gibt. Bei einer Suchanfrage mit Tippfehlern wie „jugn“ statt „jung“ wird die Suchanfrage mit einer Quelle, die die korrekten Schreibweisen enthalten sollte, abgeglichen. Hierbei kann es sich zum Beispiel um einen Solr-Index oder um ein Wörterbuch in Form einer Textdatei handeln.  Zum Schluss werden ähnlich buchstabierte Begriffe zurückgegeben. Diese Vorschläge kann man den Suchenden dann zum Beispiel unter „Meinten Sie vielleicht…?“ herausgeben, so wie Sie es vermutlich von der Google-Suche kennen.

DirectSolrSpellChecker zum Finden von Tippfehlern

Beim DirectSolrSpellChecker ist die Quelle für die korrekte Rechtschreibung der durchsuchte Index selbst. Die Suchanfrage wird also mit den Termen im Index abgeglichen und möglichst ähnliche Terme ermittelt. Somit werden Vorschläge für richtige Schreibweisen generiert.

Suchanfrage der Nutzer:innen
„Bretzel“

Vorschläge des DirectSolrSpellCheckers
Meinten Sie „Brezel“, „Brezeln“?

Im obigen Beispiel sehen wir, dass eine Person das Wort „Brezel“ in einer falschen Schreibweise getippt hat. Daher werden Vorschläge für die richtige Schreibweise von „Brezel“ anhand des DirectSolrSpellCheckers generiert. Der DirectSolrSpellChecker deckt die meisten Rechtschreib- und Tippfehler ab, die wir nicht schon durch (Char-)Filter beheben konnten. Beim Thema Leerzeichen kommt allerdings besser der WordBreakSolrSpellChecker zum Einsatz.

WordBreakSolrSpellChecker zum Finden von Schreibfehlern

Der WordBreakSolrSpellChecker erhöht die Fehlertoleranz in Bezug auf falsch gesetzte Leerzeichen. Mit diesem SpellChecker können direkt aufeinanderfolgende Suchbegriffe zu einem Wort kombiniert oder auch zusammengeschriebene Wörter in mehrere Teile zerlegt werden.

Suchanfrage der Nutzer:innen
„breakingnews“

Vorschläge des WordBreakSpellCheckers
Meinten Sie „breaking news“?

Das obige Beispiel zeigt, dass eine Person das Wort „Breaking News“ ohne Leerzeichen geschrieben hat. Der WordBreakSpellChecker erkennt „breakingnews“ allerdings als eine Variante von „Breaking News“. Demnach wird dies als Vorschlag zurückgegeben.

Suchanfrage der Nutzer:innen
„Bahn Card“

Vorschläge des WordBreakSpellCheckers
Meinten Sie „BahnCard“?

Auch überflüssige Leerzeichen werden durch den WordBreakSpellChecker toleriert. Beispielsweise wird die Schreibweise „Bahn Card“ mit einem Leerzeichen als Variante von „BahnCard“ erkannt und als Korrekturvorschlag ausgegeben.

Natürlich gibt es noch andere SpellChecker-Varianten für verschiedene Anwendungsfälle in Solr. Und wie bereits erwähnt, spielen auch Filter eine wichtige Rolle bei der Erhöhung der Fehlertoleranz. Wie die jeweiligen SpellChecker konfiguriert werden müssen bzw. Probleme mit abweichenden Schreibweisen behoben werden können, zeigen wir Ihnen gerne in unseren Schulungen und individuellen Workshops. Sie können uns jederzeit kontaktieren, wir unterstützen Sie gerne bei Ihren Fragen oder Problemen rund um Solr und dem Thema Suche im Allgemeinen.

Sie haben Fragen zur SpellChecking-Komponente in Solr? Sie benötigen Unterstützung von SHI aus Augsburg bei der Vermeidung von Nulltreffern? Nehmen Sie gleich Kontakt auf!
Jirayu Tharincharoen

Jirayu Tharincharoen