MySQL:MATCH ATTION并没有显示所有结果



我有一个奇怪的问题-我使用MySQL 5.1和一个带有Fulltable Index的表。在mysql-config中,ft_min_word_len被设置为2(因此长度至少为两个字符的单词会被索引)。

下面的查询被简化了,但与原始查询具有相同的效果。

当我搜索:

SELECT company FROM my_table WHERE MATCH (company) AGAINST ('intern*' IN BOOLEAN MODE)

我有一些公司的名字中有"internat",比如"国际股份有限公司","Intership.org"

然而,当我搜索:

SELECT company FROM my_table WHERE MATCH (company) AGAINST ('just*' IN BOOLEAN MODE)

我没有得到任何结果,尽管表中有一个条目"正义与旅行"。

但当我搜索:

 SELECT company FROM my_table WHERE MATCH (company) AGAINST ('travelling*' IN BOOLEAN MODE)

我得到了"公正与旅行"-进入/正确的结果。

如果我用LIKE %just%而不是MATCH-AGAINST搜索,我也会得到正确的结果。

有人知道为什么我在第二个提到的查询中没有得到正确的结果吗?

找到了麻烦制造者:
这是因为停止语列表。通过在my.cnf中添加以下行禁用列表解决了问题:
ft_stopword_file=''

您可以在以下链接中找到更多详细信息:
MySQL:11.9.6。微调MySQL全文搜索
MySQL:11.9.4。全文停止字

相关内容

  • 没有找到相关文章

最新更新