
476 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Jedes korrekte Wort in der Textsammlung und in der Anfrage wird nach seiner Signifikanz
in der Anfrage oder der Textsammlung gewichtet. Daher hat ein Wort, dass in vielen
Dokumenten vorkommt, ein geringeres Gewicht (und kann sogar 0 Gewicht haben), weil
es in dieser bestimmten Textsammlung einen geringen semantischen Wert hat. Ansonsten,
wenn das Wort selten vorkommt, erh¨alt es ein h¨oheres Gewicht. Die Gewichte der W¨orter
werden anschließend kombiniert, um die Relevanz der Zeile zu berechnen.
Solch eine Technik funktioniert am besten bei großen Textsammlungen (in der Tat wurde
sie sorgf¨altig darauf optimiert). Bei sehr kleinen Tabellen spiegelt die Wortverteilung nicht
ad¨aquat seinen semantischen Wert wider, so dass dieses Modell manchmal bizarre Ergeb-
nisse ergeben kann:
mysql> SELECT * FROM artikel WHERE MATCH (titel,artikeltext) AGAINST (’MySQL’);
Empty set (0.00 sec)
Die Suche nach dem Wort MySQL erzeugt im obigen Beispiel keine Ergebnisse. Das Wort
MySQL ist in mehr als der H¨alfte der Zeilen vorhanden und wird deshalb als Stopword
betrachtet (eins mit dem semantischen Wert 0). Das ist in der Tat das gew¨unschte Verhalten
- eine nat¨urlichsprachige Anfrage sollte bei einer 1 GB großen Tabelle nicht jede zweite Zeile
zur¨uckgeben.
Bei einem Wort, dass in der H¨alfte der Zeilen in einer Tabelle ¨ubereinstimmt, ist es nicht
sehr wahrscheinlich, dass relevante Dokumente gefunden werden, sondern statt dessen viele
irrelevante Dokumente. Das kennen wir alle aus Recherchen ¨uber Suchmaschinen auf dem
Internet. Das ist die
¨
Uberlegung, die dahinter steht, dass solchen W¨ortern ein niedriger
semantischer Wert in diesem bestimmten Satz von Daten gegeben wird.
7.8.1 Volltext-Einschr¨ankungen
• Alle Parameter der MATCH-Funktion m¨ussen Spalten derselben Tabelle sein, die Teil
desselben Volltext-Indexes ist.
• Das Argument f¨ur AGAINST muss eine Konstanten-Zeichenkette sein.
7.8.2 MySQL-Volltextsuche fein einstellen
Leider hat die Volltextsuche noch keine durch den Benutzer einstellbare Parameter,
doch diese stehen sehr weit oben auf der TODO-Liste. Wenn Sie jedoch eine
MySQL-Quelldistribution (siehe Abschnitt 3.3 [Installing source], Seite 67) haben, k¨onnen
Sie das Verhalten der Volltextsuche in einiger Hinsicht ¨andern.
Beachten Sie, dass die Volltextsuche sorgf¨altig auf beste Sucheffektivit¨at eingestellt wurde.
Wenn Sie dieses vorgabem¨aßige Verhalten ¨andern, wird das die Suchergebnisse in den meis-
ten F¨allen verschlechtern.
¨
Andern Sie die MySQL-Quelltexte deshalb nur, wenn Sie genau
wissen, was Sie tun!
• Die minimale zu indexierende Wortl¨ange wird in der myisam/ftdefs.h-Datei in fol-
gender Zeile festgelegt:
#define MIN_WORD_LEN 4
¨
Andern Sie diesen Wert nach Belieben, kompilieren Sie MySQL neu und bauen Sie Ihre
FULLTEXT-Indexe neu auf.
Comentarios a estos manuales