2012-04-01 24 views
0

Ich benutze eine MySQL-Datenbank.ist ft_min_word_len jetzt veraltet?

Ich habe eine Produktdatenbank, in der Benutzer im Grunde alle Produkte suchen können, die sie kaufen möchten.

Ich habe Probleme mit einer booleschen Suche, da wenn ein Benutzer nach 'new ipad' oder 'ipad 4g' sucht, ich zuerst die relevantesten Ergebnisse zurückliefern möchte, aber die Ergebnisse, die ich zurückgebe, sind ungenau wie der Volltext Der Index indiziert nur Wörter mit einer Länge von mehr als 4 Zeichen.

Gibt es einen Weg um dies? Wenn ich die Variable ft_min_word_len auf 2 Zeichen anstelle von 4 ändere und dann neu indiziere, ist das ein gewaltiger Performance-Hit?

Antwort

0

Sie können ft_min_word_len verringern, aber es betrifft nicht nur diese Tabelle, sondern alle Tabellen in allen MySQL-Datenbanken auf diesem Server.

Ihre zweite Option ist eine Volltext-Suchmaschine wie Sphinx, die eine Option dafür haben könnte.

Und Ihre dritte Option ist, Ihre Suchanfrage basierend auf dem Suchbegriff zu ändern. Programmseitig erkennen Sie, ob der Text kleiner als ft_min_word_len ist. Wenn dies der Fall ist, führen Sie eine Abfrage mit LIKE /% %/; Andernfalls verwenden Sie die Volltextsuche.

Verwandte Themen