1

我正在尝试使用 FULLTEXT 索引以方便搜索论坛帖子。它没有按我期望的方式工作,我试图理解为什么不这样做。

例如,我知道只有一篇帖子包含短语"haha and i got three",所以我执行查询

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

正如我所料,我找到了包含这句话的单个帖子。万岁!

但随后我执行了相关查询:

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

并没有得到任何结果。其实只要搜索“三”字:

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

也不产生任何结果。

会发生什么?

4

1 回答 1

2

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

我的默认设置是 MySQL 忽略全文索引中的停用词。 Here是它们的列表。“我得到了三个”都是停用词。

此外,默认情况下,MySQL 会忽略小于 for 字符的单词。这由参数控制。此处将对此进行更详细的说明。

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

于 2015-06-01T00:54:55.710 回答