Wer von Ihnen schon einmal versucht hat eine Volltextsuche in MySQL zu realisieren, dem ist bestimmt aufgefallen, dass es garnicht so einfach ist eine deutsche Stoppwortliste, die ein unnötiges Anschwillen des Volltext-Indizes verhindern soll, zu finden.
Ich habe vor einiger Zeit mal recherchiert und die gängisten deutschen Wörter in einer Wortliste zusammen gefasst.
Die Stoppwortliste (Dateiname: „stopwords_german“) muss dann nur noch auf den Server kopiert werden. Am besten unter „/etc/“ , wo sich auch die Datei „my.cnf“ (MySQL-Konfigurationsdatei) befindet.
In der Datei „my.cnf“ muss dann noch folgendes ergänzt werden:
[mysqld]
ft_min_word_len = 3
ft_stopword_file = /etc/stopwords_german
Danach müssen Sie MySQL neu starten (z.B. „/etc/init.d/mysql restart“).
Um zu prüfen ob alle Einstellungen erfolgreich übernommen wurden, reicht es aus diesen MySQL-Befehl auszuführen:
show variables like 'ft_%'
Wenn schon ein Volltext-Index besteht, muss dieser natürlich erneuert werden. Das macht man mit einem einfachen MySQL-Befehl:
REPAIR TABLE tbl_name QUICK;
Download: stopwords_german.zip
Wer mehr Informationen zum Thema Volltextsuche in MySQL haben will, den empfehle ich diesen Artikel von phpperformance.de
Hallo Frank,
das Thema „Suche“ hatte ich mal anlässlich einer Wiki-Anpassung aufgegriffen:
http://mwusers.de/viewtopic.php?f=11&t=23
Meine Erkenntnis damals war, dass die Umlaute speziell kodiert werden mussten.
Hast Du aktuelle Hinweise dazu?