mysql FULLTEXT 布尔模式搜索中缺少结果

Results missing from a mysql FULLTEXT boolean mode search

我正在尝试使用 FULLTEXT 索引以便于搜索论坛 post。它没有按我预期的方式工作,我正在尝试了解为什么不。

例如,我知道正好有一个 post 包含短语 "haha and i got three",所以我执行查询

select * from forum_posts where
match(message) against ('"haha and i got three"' in boolean mode);

正如我所料,我找到了包含这个短语的单曲 post。万岁!

然后我执行了相关查询:

select * from forum_posts where
match(message) against ('"and i got three"' in boolean mode);

没有得到任何结果。其实只要搜索 "three":

这个词
select * from forum_posts where
match(message) against ('three' in boolean mode);

也没有结果。

可能发生了什么?

我认为您需要了解停止词和最小词长。

我的默认设置是 MySQL 忽略全文索引中的停用词。 Here 是它们的列表。 "And I got three"都是停用词。

此外,默认情况下,MySQL 会忽略字符小于号的单词。这是由参数控制的。对此有更详细的解释 here.

听起来您可能想要更改停用词列表并更改最小词长并重建索引。