2012-10-24 21 views
6

"The Zen Circus"を含むフィールドに "zen"という文字列を見つけようとしています。 私はFULLTEXTインデックスを持っています。3文字の単語でmysqlの全文検索

select url,name, 
, MATCH(name) AGAINST ('zen*' IN BOOLEAN MODE) as A 
, MATCH(name) AGAINST ('"the zen*"' IN BOOLEAN MODE) as B 
, MATCH(name) AGAINST ('>the* zen' IN BOOLEAN MODE) as C 
, MATCH(name) AGAINST ('thezen*' IN BOOLEAN MODE) as D 
, MATCH(name) AGAINST ('cir*' IN BOOLEAN MODE) as E 
, MATCH(name) AGAINST ('circus*' IN BOOLEAN MODE) as F 
from pages where url='thezencircus' 

私はこの結果を持っている:私もmsyql設定ファイルにft_min_word_len = 2をパットしまし

url = thezencircus 
name = The Zen Circus 
A = 0 (why?) 
B = 0 (why?) 
C = 0 (why?) 
D = 0 (ok) 
E = 1 (ok) 
F = 1 (ok) 

を。

答えて

9

はその後、サーバーを再起動して、FULLTEXTインデックスを再構築する必要があり、この答え= 3
MySQL full text search for words with three or less letters

[mysqldを]
ft_min_word_lenを参照してください。

インデックスを再起動して再構築するためのメモ。


編集
実行 show variables like 'ft_%';は、単語の長さは、あなたがそれを設定したものと一致することを確認します。

+0

私はあなたが言ったすべてのことをやったことがあります、ありがとう、しかし問題はまだここにあります。 :-( – Pons

+0

REPAIR TABLEページをQUICKで実行してみてください; ft_min_word_lengthを設定して、正しいことを確認してください:http://lostquery.com/questions/196/how-do-i-enable-short-3あなたがそれをした方法は? – Kao

+0

また、ft_min_word_len – Kao