Philipp Hasenfratz: Wie erstellt man index-Dateien für eine Volltext-Suche?

Beitrag lesen

Halihallo Andreas

Wie komme ich eigentlich auf die richtigen Begriffe für Index-Dateien? Werden da die Dateien alle Wort für Wort durchsucht?

Nein, man erstellt einen sogenannten inverted index, d.h. eine Volltextsuche wird
_niemals_ alle Dokumente durchforsten. Dies würde definitiv zu lange dauern. Der Trick
einer Volltextsuche ist es einen Index über die Wörter zu erstellen. Jedes Dokument wird
zuerst indexiert, d.h. in Wörter oder Wortkombinationen aufgeschlüsselt und nur diese
werden gespeichert. Enthalten nun zwei Dokumente das selbe Wort, wird es einmal
gespeichert und referenziert beide Dokumente. Dies könnte z.B. so aussehen:

Datenbank => 192;168

also: Das Wort "Datenbank" ist in den Dokumenten 192 und 168 enthalten. Sucht nun jemand
über die Volltextsuche nach "Datenbank", muss nur noch der Index abgefragt werden (und
dies kann bekanntlich sehr, sehr viel schneller geschehen, als wenn man die ganze Datei
durchsuchen müsste).

Also, ich habe mir mal die JavaScript-Suche von SelfHtml angesehen und da gibt's ja haufenweise Indexe. Scheinbar werden da Arrays gefüllt mit Seitenzahlen oder sowas. Und wodurch wird so eine Suche dann schnell?

Der Vorteil liegt darin, dass nicht _jedes_ Dokument _ganz_ durchforstet werden muss,
sondern nur noch eine Datei (der Index). Findet man in dieser den entsprechenden Eintrag
hat man gleich alle Dokumente, die den Suchbegriff enthalten. Zudem kann ein guter
Index sehr viel schneller durchsucht werden, da er vorsortiert sein kann (wie z.B. die
Indizies bei Datenbanken).

w["ug"]="2044-613+2045-1058"
hat das einen Sinn? (wahrscheinlich ;)

Ist anzunehmen, ja. 2044 referenziert wahrscheinlich irgendein Dokument von SelfHTML.

Tja, ist alles noch nicht so konkret, aber ich habe eben noch keine konkrete Vorstellung und hätte gern mal Tips, wie man so was angeht.

Benutzt du eine MySQL Datenbank? - Dann wäre ggf.
http://www.mysql.com/doc/en/Fulltext_Search.html lesenswert. Sonst müsstest du
etwas mehr dazu sagen, wie du die Volltextsuche haben möchtest und welche Techniken dir
zu Verfügung stehen.

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.