mysql - mysql FULLTEXT bool 模式搜索缺少结果

标签 mysql fulltext-index

我正在尝试使用全文索引以便于搜索论坛帖子。它没有按照我期望的方式工作,我正在尝试理解为什么不。

例如,我知道有一篇帖子包含短语“哈哈,我得到了三个”,因此我执行查询

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);

也没有结果。

可能发生了什么?

最佳答案

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

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

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

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

关于mysql - mysql FULLTEXT bool 模式搜索缺少结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564259/

相关文章:

mysql - 在现有数据库上添加 FULLTEXT 索引

javascript - 从数据库中检索数据并将其显示在网页上的折线图中

MySQL Workbench 忽略外键

php - 如何不在 php 中进行数据库调用来检查用户角色?

mysql - 如何更改数据库的 MySQL 日期格式?

Mysql查询分组问题

sql-server - 在十进制/数字列上创建全文索引,可能吗????? (SQL 服务器 2008)

MySQL跨多列全文查询