1

我真的不明白,但我MATCH (columnName) AGAINST ('word')在 MySQL 中只发现那些包含完全word,但不包含wordsor keyword

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

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完整索引。

4

2 回答 2

2

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

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

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

于 2012-07-24T05:40:49.273 回答
2

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

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

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

ft_min_word_len=1
ft_stopword_file=""

3:重启你的服务器

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

修复表表名;

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

于 2013-12-18T08:01:19.897 回答