即使表中存在确切的搜索短语,mysql全文也会返回零结果

时间:2011-09-01 19:15:53

标签: mysql full-text-search

我有一个名为myatts的表格:

  • 它有大约3,332,834行数据。
  • 我通常搜索“内容”栏目
  • 我有大约40行,其中content = Rat,D.D。

然而,当我全文搜索它时,我没有得到任何结果。但如果我使用LIKE,我会得到结果 我想坚持使用全文,任何人都可以帮我弄清楚为什么没有返回结果?

这是我的表结构:

id  
int(11) Not null AUTO_INCREMENT

join_id     
int(11) Not Null

webid
int(11) Not Null 

content
text utf8_general_ci

以下是我的索引

Keyname Type      Unique Packed      Field      Cardinality
PRIMARY BTREE     Yes    No      id             3332834     
content BTREE     No     No      content (333)  238059          
id_index    BTREE     No     No      webid      151492          
join_id BTREE     No     No      join_id        36          
content_ft  FULLTEXT  No     No      content        119029

这是我的问题:

SELECT * FROM myatts WHERE MATCH(content) AGAINST('Rat, D.D.' IN BOOLEAN MODE)

以下是解释:

1   SIMPLE  myatts  fulltext    content_ft  content_ft  0       1   Using where

任何帮助/指针都会很棒。谢谢!

2 个答案:

答案 0 :(得分:0)

您的最小字长可能设置为4.有关详细信息,请查看MySQL Manual

答案 1 :(得分:0)

默认情况下,MySQL的全文索引器会忽略长度少于4个字符的单词。在my.cnf中设置此变量:

ft_min_word_len=3

我可能不想少于3,因为你最终会得到误报。