2009-10-18 10 views
10

Ich versuche, meine Volltextsuche (im booleschen Modus) zu erhalten, um Wörter mit drei Buchstaben oder weniger abzurufen.MySQL Volltextsuche nach Wörtern mit drei oder weniger Buchstaben

Derzeit, wenn ich nach etwas wie "NBA" suche, bekomme ich keine Ergebnisse.

Wenn ich jedoch den Platzhalter "*" an den Suchbegriff angehängt habe, bekomme ich Ergebnisse.

Ich habe auch gelesen, dass Sie die drei Wortgrenze in my.ini entfernen können, aber ich frage mich, ob es einen besseren Weg, dies im laufenden Betrieb zu tun war.

Antwort

16

könnte Dieser Abschnitt des Handbuchs Sie interessieren: 11.8.6. Fine-Tuning MySQL Full-Text Search(unter Angabe eines Teils davon):

Die minimalen und maximalen Längen von Wörter indiziert werden durch die ft_min_word_len und ft_max_word_len definiert sind Systemvariablen. Der Standard-Minimalwert ist vier Zeichen; Das Standardmaximum ist Versionsabhängig. Wenn Sie einen der Werte ändern, müssen Sie Ihre FULLTEXT-Indizes neu erstellen.
Beispiel: Wenn Sie drei Zeichen Worte wollen durchsuchbar sein, können Sie die ft_min_word_len Variable durch die folgenden Zeilen in einer Optionsdatei setzen:

[mysqld] 
ft_min_word_len=3 

Dann müssen Sie den Server neu starten und Erstellen Sie Ihre FULLTEXT-Indizes neu.

(Sie diese Seite lesen sollte, die ich für weitere Informationen zu nicht-Paste kopieren ;-))

+0

Dank Pascal, las ich das gleiche schon, ist die Idee, ich habe zu tun es mit einer PHP-Funktion, die die Länge der Suchphrase überprüft und hängt den Platzhalter * Modifikator, wenn es weniger als ft_min_word_len ist fragen, ob es eine bessere Möglichkeit, darüber zu gehen ist als das ... –

+0

Oh, tut mir leid, nicht verstehe das ;; Ich habe keine Ahnung davon ... bin mir aber nicht sicher, ob es eine gute Leistung wäre. nur als Nebenbemerkung: Wie wäre es mit einer externen Suchmaschine/Suchmaschine, wie Solr oder Sphinx? –

+0

danke, Ich habe von Sphinx gehört, aber hatte noch nicht die Zeit, meinen Kopf um ihn zu wickeln, werde bald darauf schauen –

Verwandte Themen