Projekt Beschreibung

Für eine effektive Suche auf einer Website ist es wichtig, dass Benutzer schnell und einfach passende Ergebnisse finden. Solr Fuzzy Suggester und Solr Infix Suggester bieten dafür eine effektive Lösung. Diese können über Ajax-Abfragen aufgerufen und gefiltert werden.

Die Aktivierung des Suggesters erfolgt über die XML SuggestComponent-Komponente in der solrconfig.xml, wie der folgende Beispielcode zeigt:

php
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">suggest_field</str>
<str name="weightField">weight</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<str name="buildOnStartup">true</str>
</lst>
</searchComponent>

Durch die Verwendung von Solr Fuzzy Suggester und Solr Infix Suggester können Benutzer schnell und einfach relevante Ergebnisse finden, indem sie Vorschläge und Autovervollständigungsfunktionen erhalten. Die Abfrageergebnisse können dann gefiltert werden, um sicherzustellen, dass nur die relevantesten Ergebnisse angezeigt werden.

Durch die Nutzung dieser Technologien können Websites eine verbesserte Suchfunktionalität und Nutzererfahrung bieten.

Copy to Clipboard

Die Abbildung Zeigt was der Suggester bewirkt. Eingabe erzielt keinen genauen Treffer und der Solr Suggester gibt ähnliche Vorschläge. Zum Auswahl stehen mehrere Möglichkeiten die Ähnlichkeit von Zeichenketten zu ermitteln. Hier werde ich zwei erwähnen.

Erste Möglichkeit ist Fuzzy der basiert an dem Levenshtein-Distanz Algorithmus.

Als JavaScript wurde es so aussehen:

Copy to Clipboard

Die zweite Möglichkeit ist der infix der basiert auf Präfixübereinstimmungen mit Token im indizierten Text vor. Dies verwendet einen Lucene-Index für sein Wörterbuch. Lucene ist eine Volltextsuche der Apache Software Foundation die enthält Open Source Programmbibliotheken. Es ist also eine indexierte Tabelle die bei der Verarbeitung erstellt Tokens. Die Leerzeichen zeichnen Ende oder Anfang einer Zeichenkette. Die Einzelne Zeichenketten werden Normalisiert um bessere Treffer zu erzielen – z.B. umwandeln Groß- in Kleinbuchstaben aber auch Mehrere zusamenhänge aus dem Worterbuch indexiert.

Vorteil sind die Optionen die im Querys definieren kann und damit Flexibilität.

Was machen es die kommerzielle Suchmaschinen?

Eine Kombination von beiden ist eigentlich das was die meisten Suchmaschinen bieten. Bei der Eingabe im Suchfeld werden einzelne Zeichenketten vorgeschlagen im Kontext anderer Zeichenketten und einzelnen Begriffen. Damit wird eine Semantische Suche erzielt. Bei den großen Suchmaschinenanbieter werden diese Suchen kommerziel angepasst und leiten Nutzer an prioritären Indexen. Die Seiten werden über Richtlinien sortiert und kategorisiert. Die Interessengruppen werden über Treckingstechnologien, KI Algorithmen und Database Marketing ermittelt und die Suche an die Zielgruppe angepasst.