mysql 全文搜索不工作,即使条目存在并且 ft_min_word_len 设置为 1

mysql fulltext search not working, even though entry exists and ft_min_word_len is set to 1

我有一个 mysql table 并且需要对其执行全文搜索。但是,即使所需数据在 table 中,全文搜索也不会检索到它。

这里是查询:

SELECT * from declensions_english where match(finite) against("did" IN     BOOLEAN MODE)

搜索到的数据是这样的:

I did

当然这是在有限的专栏中。在这旁边的 table 中有大约一百万行,所以通配符非常慢。

为什么这不起作用?这不是因为单词 (did) 的长度,因为我已经将 ft_min_word_len 设置为 1。还有其他情况下三个字母的单词会提供预期的结果(即检索到数据)。但也有连四个字母的词都找不到的情况。我不知道发生了什么,但我从昨天开始才使用全文搜索,所以请认为我是新手。

由于您使用 ft_min_word_len,我必须假定您的 table 使用 myisam table 引擎。

单词didmyisam stop word list上,这就是为什么搜索不到return的原因。

您可以 disable or change 停用词列表或迁移到 innodb,它的默认停用词列表中没有这个词。

老实说,我想不出有什么理由在 2019 年使用 myisam。你真的应该迁移到 innodb。