Blog_allgemein

Multi Term Synonyme – Solr Feature

Patricia Kraft

..., geboren 1988 in Augsburg, studierte Informatik und Multimedia an der Universität Augsburg. Nach dem Erreichen des Masters in diesem Fach stieg sie unmittelbar in die Suchbranche ein und begann 2015 ihre Karriere bei der SHI als Consultant für Search & Big Data. Durch das heterogene Arbeiten an Projekten – sowohl in der Beratung als auch in der Konzeption und Implementierung – erlangte sie einen umfassenden Überblick über alle Projekt-Phasen. Für den SHI-Blog teilt sie ihre Erfahrung aus zahlreichen Projekten in verschiedensten Branchen sowohl aus technischer als auch als aus unternehmerischer Sicht. Lieblingsdateiformat: JSON

Seit Ende März glänzt Solr wieder in einem neuen Versionsgewand – das Release 6.5 hat einige interessante Zusatzfeatures zu bieten. Dazu gehört die Einführung von PointFields, Verbesserungen des Highlightings und auch der Bereich Streaming Expressions wurde um einige Funktionalitäten wie significantTerms und arithmetische Operationen erweitert. Besonders hervorzuheben ist aber die langersehnte Möglichkeit, Multi-Term-Synonyme zu definieren.

Synonyme, wie wir sie kennen

Synonyme bilden eine wichtige Suchfunktionalität, um die Suche bestimmter Terme auf andere Begriffe auszudehnen oder mit ihnen zu ersetzen. Dabei dient ein einzelnes Wort als Ausgangsterm und wird zusammen mit einer Reihe von Ersetzungen in der Synonymliste hinterlegt.
Die Definition des Synonyms

Eiersuche => Ostern

führt beispielsweise dazu, dass bei der Eingabe von „Eiersuche“ Dokumente gefunden werden, für die der Term „Ostern“ abgespeichert ist. Eine Suche nach „Suche nach Eiern“, was im üblichen Sprachgebrauch durchaus als Synonym zu „Eiersuche“ verstanden werden könnte, konnte allerdings bislang nicht in die Synonymliste aufgenommen werden, da es aus mehreren einzelnen Wörtern zusammengesetzt ist. Die Vorverarbeitung des Query Parsers zerlegt die Eingabe in ihre Bestandteile und gleicht erst daraufhin die Terme mit den Einträgen in der Synonymliste ab.

Multi-Term-Synonyme

Solr 6.5 führt nun einen Suchparameter „sow“ (split on whitespace) ein, mit dem entschieden werden kann, ob die Sucheingabe wie gewohnt vor dem Abgleich mit der Synonymliste am Leerzeichen in ihre Bestandteile zerlegt wird (sow=true) oder alle Terme als ein Begriff an die Liste übergeben werden (sow=false).
Damit ist es nun möglich, das obige Synonym für die Verarbeitung zur Suchzeit wie folgt zu erweitern:

Eiersuche, Suche nach Eiern => Ostern

Selbstverständlich ist es weiterhin möglich, mehrteilige Begriffe als Ersetzungen zu verwenden, wie beispielsweise

Eiersuche, Suche nach Eiern => Ostern, Spiel zu Ostern

Mit dieser Definition und durch Verwendung von sow=false findet Solr nun alle Dokumente, für die „Ostern“ oder „Spiel zu Ostern“ als Werte hinterlegt sind, auch wenn die Eingabe „Eiersuche“ oder „Suche nach Eiern“ lautet. Damit steht der digitalen Eiersuche nichts mehr im Wege und nur die echten Eier müssen Sie noch selbst finden.

Frohe Ostern!