MySQL Volltextsuche (engl. Full-Text Search) in 3 Schritten
/5.1/de/fulltext-search.html einsehbar.
1. Schritt – Volltext Index erstellen
Es existieren zwei Wege einen Volltextindex zu erstellen, bei der Neuerstellung einer Tabelle oder dem nachträgliche Hinzufügen. Bei der Erstellung einer Tabelle sehe dies auf dem MySQL-Prompt wie folgt aus:mysql> CREATE TABLE testtabelle (
-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> testspalte1 VARCHAR(200),
-> testspalte2 TEXT,
-> FULLTEXT (testspalte1,testspalte2)
-> );
mysql> ALTER TABLE testtabelle ADD FULLTEXT (testspalte1,testspalte2);
2. Schritt – Eigene Stopwortliste
Eine Stopwortliste ermöglicht bei der Volltextsuche Füllwörter (und, als, der etc.) bei der Relevanzberechnung zu ignorieren. Je nach Kontext der Seite möchte man eine eigene Stopwortliste verwenden um dem Webseiten-Besucher relevantere Ergebnisse zu liefern.In der my.cnf meldet man die eigene Stopwortliste wie folgt an:
[mysqld]
ft_stopword_file=”PFAD/stopword_de.c
ft_min_word_len=”3″
“dann”,
“das”,
“dass”
DOWNLOAD: Beispiel Stopwortliste für deutschen Sprachraum
stopword_de.c3. Schritt – Die Such-Query
Um die Volltextsuche auch benutzen zu können, bedarf es eines abgeänderten SELECTs:mysql> SELECT id, MATCH (testspalte1,testspalte2) AGAINST (‘Suchwort‘) AS rang
FROM testtabelle
WHERE MATCH (testspalte1,testspalte2) AGAINST (‘Suchwort‘);
Nun kann man (hier mit PHP) dem Benutzer den Relevanzwert etwas schmackhafter servieren, indem man rang als prozentualen Wert umrechnet.
<? number_format(($ergebnis['rang'] * 100),0).”%”; ?>
Voila!Hinweise
Die Volltextsuche lohnt sich erst bei einer hohen Datendichte. Bei ein, zwei Webseiten in der Datenbank wird die Volltextsuche kaum relevante Ergebnisse liefern, denn MySQL prüft ob der Suchbegriff in mindestens 50 Prozent der Datensätze vorhanden ist und erklärt diesen dann als unrelevant für die Abfrage. Macht ja auch Sinn, wenn man bedenkt, dass das Wort Auto auf einer Automobilhersteller-Webpräsenz ziemlich unnütz für eine Suchanfrage erscheint.Diese Anleitung ist ein praktischer Leitfaden ohne Gewähr.
Weiterführende Literatur
empfehlenswert sind folgende Bücher:- Das offizielle MySQL 5-Handbuch von MySQL MySQL AB
- MySQL 5. Einführung, Programmierung, Referenz (Open Source Library) von Michael Kofler
- MySQL 5. Für Professionals von Axel Bornträger

Sonntag, 2. März 2008 21:39
Wow – ich musste echt lange googlen, stieß dann aber auf Ihren Artikel. Sehr fundiert und prägnant, Hut ab.
Ich habe ihn mir direkt gebookmarkt und werde mich nun weiter umschauen.
Super!