- Volltextindizierung
-
Eine Volltextrecherche ist das Auffinden von Texten in einer Vielzahl gleicher oder verschiedenartiger Dateien auf einem Computer, einem Server und/oder im Internet. Oftmals wird hierfür auch der Begriff Volltextsuche verwendet. Die Suchbereiche werden mit entsprechenden programminternen oder programmunabhängigen Index-Werkzeugen zuvor 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 Textmining. Sie ist eine Sofortlösung, um für eine konkrete Fragestellung auf Systeme wie Dokumentenmanagement und Data-Mining (Datenschürfung) 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 Feld-unabhängig gesucht werden kann.
Inhaltsverzeichnis
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änden 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
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 = '%suchbegriff%'"
- Unscharfe 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
- diese Aufzählung ist nicht abschließend...
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.
Volltextrecherchesysteme durchsuchen etwa mehrere Gigabytes an Daten in weniger als fünf Sekunden.
Siehe auch
Verwandte Gebiete und weitergreifende Systeme
Wikimedia Foundation.