Volltextrecherche

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Dezember 2014 um 19:35 Uhr durch Taborsky (Diskussion | Beiträge) (rv). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Eine Volltextrecherche (oftmals auch Volltextsuche) ist das Auffinden von Texten in einer Vielzahl gleicher oder verschiedenartiger Dateien auf einem Computer, einem Server und/oder im Internet. Die Suchbereiche werden zuvor mit entsprechenden programminternen oder -unabhängigen Index-Werkzeugen indiziert.

Zur schnellen Informationsgewinnung und dem Auffinden aus bekannten wie auch nicht bekannten (aber auf den Medien vorhandenen) Dokumenten wird die Volltextrecherche genutzt. Die Volltextrecherche dient daher dem Auffinden, Entdecken und Extrahieren unbekannter, nicht trivialer und wichtiger Informationen aus großen Mengen von unstrukturierten Texten/Dateien und ist somit auch ein wichtiger Teilbereich des Text Mining. Sie ist eine Sofortlösung, um für eine konkrete Fragestellung auf Systeme wie Dokumentenmanagement und Data-Mining verzichten zu können.

Im Kontext von Datenbanken bedeutet Volltextsuche, dass zusätzlich zu einer sonst etwa genutzten SQL-Abfrage, die eine Kenntnis der Feldstruktur voraussetzt, auch feldunabhängig gesucht werden kann.

Geschichte

Die Volltextsuche ist in der Mitte der 1970er-Jahre aufgekommen. Vorher wurden oft Systeme eingesetzt, in denen ein Mensch Schlüsselbegriffe in den später aufzufindenden Text oder in Meta-Dateien aufnehmen musste (Katalogsystem). Dieses Verfahren ist für viele Bereiche größtenteils nicht mehr durchführbar, da solche kosten- und zeitintensiven Arbeiten eher schlecht für größere Datenbestände funktionieren. Unter anderem ist die Suchmaschine Yahoo in der Mitte der 1990er-Jahre mit einem solchen Ansatz gescheitert.

Als Lösung für dieses Problem begann man damit, den gesamten Originaltext zum Zwecke des späteren schnellen Wiederauffindens aufzubereiten und in der aufbereiteten Form zu speichern. Damit kann theoretisch jedes Dokument, das nur mindestens ein Wort der Suchanfrage enthält, aufgefunden werden. Somit ist der oben geschilderte händische Indexierungsprozess nicht nur umgangen worden; man erhält auch ein vollständigeres Suchergebnis. In der Praxis gibt es einige Probleme. Da eventuell auch Dokumente Wörter aus der Suchanfrage enthalten, die nicht dem gesuchten Thema entsprechen, werden diese ebenfalls gefunden und der Benutzer sieht sich einer gewaltigen Ergebnisliste mit oftmals irrelevanten Dokumenttreffern gegenüber. Demgegenüber werden außerdem Dokumente nicht gefunden, die zwar zum gesuchten Themenkomplex passen, aber andere Wörter z.B. Synonyme benutzen. Dieses Problem wird heutzutage mittels Ontologien bearbeitet. In der Mitte der 1970er wurden allerdings neue Sucharten neben der klassischen Wortsuche wie Phrasensuche oder Platzhaltersuche sowie Rankingverfahren eingeführt, um das obige Problem abzumildern.

Eine weitere Möglichkeit erschloss sich bei relationalen Datenbanken mit der Einführung von Feldtypen wie Typ=Memo (MsAccess) oder Typ=BLOB (MySQL) oder varchar bei SQL-Datenbanken, die in der Lage sind, auch größere Texte aufzunehmen. Hier kann die häufig ohnehin stattfindende Indizierung der Tabellen einer Datenbank zusammen mit der Platzhaltersuche für entsprechende SQL-Abfragen genutzt werden, wenn die jeweiligen Dokumente in solchen Datenbankfeldern gespeichert vorliegen. Dies führt ggf. zu einer schnelleren Antwort der Datenbank.

Grundlegende Sucharten

Diese Aufzählung ist nicht abschließend:

Je nach verwendetem Suchsystem gibt es folgende Suchmöglichkeiten:

  • Wortsuche
  • beliebige Wörter
  • Phrasensuche: "Mit Wikipedia kann man"
  • Boolesche Operatoren: "und/oder/nicht"
  • Umfeldsuche: Wörter oder Phrasen die "n" Wörter voneinander entfernt sind (bei PDF-Index kleiner als 3 Seiten)
  • Platzhaltersuche:
    • für einzelne Buchstaben "?" wie Ma?er = Mayer/Maier/Mauer...
    • für beliebig viele Buchstaben "*"
    • innerhalb von Datenbanktabellen mit SQL "SELECT text FROM tabelle WHERE text LIKE '%suchbegriff%'"
  • Unscharfe bzw. fehlertolerante Suche Fuzzy-Suche
  • Thesaurus-/Synonym-Suche
  • Natürlichsprachliche Suche mit Relevanzsortierung: "Finde alle IT-Artikel in Wikipedia"
  • Kombination mit den vorgenannten Möglichkeiten
  • Makro-Suche: Eine Möglichkeit mit vordefinierten Makros wiederkehrende Suchabfragen durchzuführen
  • ...

Technik

Der häufigste Ansatz für ein Volltextrecherchesystem ist, dass ein kompletter Index der vollständigen Datenbasis erstellt wird. Für jedes Wort - außer Stoppwörter, die zur Suche eher unnütz sind - wird ein Eintrag in den Index mit der genauen Position im Datenbestand vorgenommen (Invertierte Datei).

Eine Suchanfrage kann nun relativ einfach abgearbeitet werden, da nun nicht mehr jedes Dokument selbst durchsucht werden muss. Für Kleinstdatenbestände wäre ein serielles Scannen zwar noch praktikabel, nicht jedoch für größere Datenmengen.

Siehe auch