René Kriegler, Suchindex, Suchmaschine, Suchpotential

Im ersten Teil des Artikels wurde die Verwendung eines Suchindexes als wesentliches Merkmal der Suche über eine Suchmaschine im Vergleich zur Datenbankabfrage beschrieben. Im Folgenden werden nun die Vorteile, die auf Basis des Suchindex realisiert werden können, dargestellt.

Geschwindigkeitsgewinn

Wie bereits erwähnt, wird auf neu entstehenden Sites häufig zunächst über die Datenbank gesucht. Dabei wird entweder der Suchbegriff jeweils mit dem gesamten Feldinhalt verglichen oder es wird eine Teilstring-Suche mit einem Platzhalter auf den Feldinhalten ausgeführt. Diese Teilstringsuche über Felder einer Datenbank ist inhärent langsamer als die Suche mittels einer Suchmaschine und wird mit zunehmenden Datenbestand immer langsamer. Dies wird dadurch verursacht, dass in der Datenbank die Text-Felder zur Abfragezeit auf den Teilstring geprüft werden müssen.

Auch das Anlegen eines Datenbank-Indexes schafft hier nur wenig Abhilfe, denn es müssten zunächst sämtliche Indexschlüssel einzeln auf Vorkommen des Teilstrings geprüft werden. Wie bereits beschrieben wurde, wird diese Analysearbeit beim Suchindex durch das Aufteilen in Tokens und die Bildung von Indextermen schon erledigt, bevor die Suchabfrage ausgeführt wird. Dadurch ist die Antwortzeit bei der Suchabfrage an den Suchindex nicht nur kürzer als bei der Datenbanksuche, sondern sie ist auch sehr viel weniger abhängig von der Größe des Datenbestands, so dass die Bestandsgröße häufig vernachlässigt werden kann.

Nachteilig für die Dauer einer Suchabfrage auf der Datenbank kann sich auch auswirken, dass die zu durchsuchenden Textfelder sich über mehrere Datenbanktabellen verteilen und teilweise nur über komplexe Join-Anweisungen über mehrere Tabellen ermittelt werden können. Die aus Sicht der Datenhaltung gewünschte Normalisierung des Datenbankschemas führt im Falle einer solchen Suchabfrage zu Geschwindigkeitseinbußen. Auch hier kann bei der Verwendung einer Suchmaschine die Hauptarbeit in die Indexierung verlegt werden.

Dies bedeutet, dass die komplexen Datenbankabfragen einmalig während der Indexierung ausgeführt werden und die Datenbankabfrageergebnisse dann denormalisiert im Suchindex hinterlegt werden. Damit können die Daten während Suchabfrage schneller gefunden werden.Redundanzen im Suchindex, die durch die Denormalisierung entstehen können, wirken sich damit zum Vorteil für die Abfragegeschwindigkeit aus, können aber einen hohen Indexierungsaufwand zur Folge haben, wenn der redundant auftauchende Wert in der Datenbank geändert wird. Dies bleibt von Nutzer unbemerkt und wird für eine schnelle Suchabfrage in Kauf genommen. Der erzielte Geschwindigkeitsgewinn durch die Denormalisierung der Daten kann den Einsatz einer Suchmaschine auch für Anwendungsfälle attraktiv machen, in denen es darum geht, anstatt Textdaten beliebige nominale Daten (z.B. Ids) zu durchsuchen.

Linguistische Erweiterungen

Der Einsatz einer Suchmaschine ermöglicht mit Hilfe von linguistischen Techniken, mehr relevante Treffer für eine Suchabfrage zu ermitteln als eine reine Datenbanksuche. Einige dieser linguistischen Erweiterungen finden sich im Zusammenhang mit der oben erwähnten Token- und Term-Bildung bei fast jeder Suchmaschine. Dazu gehören die Egalisierung von Groß- und Kleinschreibung und das so genannte Stemming. Bei Letzterem geht es darum, zu jedem Wort eine Basisform zu ermitteln, so dass auch Suchtreffer gelingen, wenn ein Wort bei der Sucheingabe und im Suchindex verschiedene grammatische Formen aufweist. Zum Beispiel können auf diese Weise Treffer für die Sucheingabe „radios“ gefunden werden, auch wenn im Suchindex nur Einträge für „radio“ stehen.

Weiterhin können bei der Bildung der Basis-Wortform auch orthografische Varianten ausgeglichen werden, so dass eine Suche nach „bass“ auch den inzwischen orthografisch veralteten „Baß“ findet. Für das Englische können hier auch Unterschiede zwischen britischem und amerikanischen Englisch, wie in „colour“ vs. „color“ ausgeglichen werden.

Die linguistischen Möglichkeiten, mit denen eine Suche sehr wirkungsvoll erweitert werden können, beschränken sich nicht auf die Erfassung verschiedener Wortformen und orthografischer Varianten, sondern erstrecken sich auch auf das Gebiet der Semantik. Eine sehr wirkungsvolle Maßnahme, die Trefferzahl bei hoher Trefferqualität zu erhöhen, besteht darin, Synonyme, also bedeutungsgleiche oder -ähnliche Wörter, mit in den Index aufzunehmen. Taucht zum Beispiel in einem Datenbestand elektronischer Artikel das Wort „Notebook“ auf, kann für die betroffenen Datensätze das Wort „Laptop“ mit in den Index eingefügt werden, so dass Nutzer, die ausschließlich nach „laptop“ suchen, auch Notebooks finden, obwohl der eingegebene Suchbegriff nicht im ursprünglichen Datenbestand auftauchte.

Dieses Einfügen von Tokens kann sehr flexibel gehandhabt werden. Neben globalen Synonym-Tabellen, die für alle Datensätze gelten, können einzufügende Begriffe auch pro Datensatz festgelegt werden. Bei den eingefügten Begriffen muss es sich nicht unbedingt um Synonyme handeln, sondern es sind die verschiedensten semantischen Relationen denkbar. Zum Beispiel. kann es auch sinnvoll sein, Oberbegriffe (Hyperonyme) einzufügen, wie im Falle der Einfügung „Notebook“ bei einem Datensatz „Netbook“.

Außer für diese allgemeinen semantischen Beziehungen kann das Einfügen von Tokens auch sehr gut genutzt werden, zwischen der Domainspezifik und dem Erfahrungs- und Erwartungshintergrund des suchenden Nutzers zu vermitteln. Nennt eine Bank zum Beispiel Ihr Tagesgeld-Produkt „FlexKonto“, würden die entsprechenden Produktinformationen kaum gefunden werden, denn nur wenige Nutzer kämen wohl auf die Idee, nach diesem Namen zu suchen. Hier kann Abhilfe geschaffen werden, indem die Wörter „Tagesgeld“ und „Tagesgeldkonto“ den betreffenden Einträgen des Suchindex hinzugefügt werden.

Insgesamt bieten Suchmaschinen gegenüber einer Datenbank eine deutlich höhere Flexibilität und Funktionsvielfalt beim Einsatz linguistischer Erweiterungen für die Suche. Ein Großteil dieser Funktionen wird bereits beim Indexieren realisiert, so dass sie sich nicht negativ auf die Abfragegeschwindigkeit auswirken.

Steuerung von Relevanz und Sortierung

Wird eine Suche über eine Datenbank realisiert, steht in den meisten Fällen lediglich ein boolesches Modell zur Verfügung, welches an Hand der Abfrage filtert, welche Datensätze in die Ergebnismenge aufgenommen werden und welche nicht. Suchmaschinen bieten darüber hinaus zumeist auch die Möglichkeit ein Vektormodell zu verwenden, bei dem die Indexeinträge und Sucheingabe als Vektoren von Termen abgebildet werden. Bei der Sortierung des Ergebnisses werden dann die Datensätze mit dem geringsten Vektorabstand zum Vektor der Sucheingabe an den Anfang der Trefferliste sortiert, während bei der Datenbanksuche die Sortierung ausschließlich über Feldwerte der Datenbankeinträge erfolgt.

Bei der Verwendung eines Term-Vektormodells besteht nun die Möglichkeit, die Sortierung auf Ebene einzelner Terme, aber auch auf Ebene des gesamten Datensatzes während der Berechnung des Vektorabstands zu beeinflussen. Das heißt, es können Datensätze, die bestimmte Terme enthalten, weiter nach oben sortiert werden bzw. es werden bestimmte Datensätze unabhängig von den Suchtermen mit einem Boost-Faktor versehen, der sie in der Ergebnisliste nach oben bringt.

Eine solche Beeinflussung der Sortierung kann auf der Basis von Click-Stream-Analysen erfolgen: wenn z.B. unabhängig von der Sucheingabe Nutzer signifikant häufig auf Treffer klicken, die den Term „neu“ enthalten, ist es sinnvoll, Datensätze nach oben zu sortieren, die diesen Term enthalten. Die Einflussnahme auf die Sortierung kann auch auf Grundlage von fachlichen Regeln und Geschäftsdaten erfolgen. So ist ein – ggf. sekundäres – Sortierkriterium denkbar, nach dem in einem Shop Artikel mit der größten Gewinnspanne an den Anfang der Trefferliste gebracht werden.

Damit erweist sich die Suche über eine Suchmaschine auch hinsichtlich der Steuerung von Relevanz und Sortierung als deutlich mächtiger und flexibler als die Suche über eine Datenbank. Im dritten Teil des Artikels werden Zusatzfunktionen vorgestellt, die durch Suchmaschinen häufig bereit gestellt werden und nicht in unmittelbarem Zusammenhang zur Verwendung eines Index stehen.

Über den Autor

René Kriegler ist freiberuflicher Softwareentwickler und -architekt. Er hat sich darauf spezialisiert, Unternehmen beim Einsatz von Suchtechnologien in der Planung und Umsetzung zu unterstützen. Dabei stützt er sich auf seine langjährige Erfahrung als Entwickler, vor allem im Java-Enterprise-Bereich, als technischer Projektleiter und auf seine Ausbildung als Linguist. Über den Bereich Suche hinaus interessiert er sich für Recommendation-Technologien und Text-Mining.

GD Star Rating
loading...
Alle Bilder in diesem Artikel unterliegen der Creative-Commons-Lizenz (Namensnennung-Keine Bearbeitung, CC BY-ND; Link zum rechtsverbindlichen Lizenzvertrag). Ausgenommen sind anders gekennzeichnete Bilder unter anderem von Panthermedia, Fotolia, Pixelio, Morguefile sowie Pressefotos oder verlagseigenes Bildmaterial.