MySQL - MATCH表现为仅搜索整个单词

时间:2012-07-24 05:32:40

标签: mysql match

我确实得到了它,但我在MySQL中的MATCH (columnName) AGAINST ('word')只发现那些包含word,而不是wordskeyword

我尝试在我的系统上运行此查询:

select count(*) from content where lcase(content_text) like '%try%' 
and not match (content_text) against ('try') order by content_id

我收到了结果

| count(*) |
____________
|  379     |

我认为应该是0.我的查询或数据库可能出现什么问题?

PS:表content是MyISAM,我已将列content_text设置为完整索引。

2 个答案:

答案 0 :(得分:2)

'try'是一个MySQL停用词。对于全文搜索,该词被忽略。

参考:http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html

另外,是的,MATCH只搜索整个单词,你是对的。这是一种自然语言搜索。如果您希望搜索部分单词(单词中的字符),请使用LIKE %xxx% isntead。

答案 1 :(得分:2)

全文搜索会停止一些常用字词,但使用此步骤会禁用它。

1:在mysql中打开my.ini文件

2:在my.ini中的[mysqld]行后面的两行以下(在文件中搜索[mysqld])

ft_min_word_len=1
ft_stopword_file=""

3:重启服务器

4:使用以下命令修复你的表

  

修复表tablename;

5:现在你的搜索工作正在......