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

时间:2019-04-28 21:41:21

标签: mysql full-text-search match against

我有一个mysql表,需要对其进行全文搜索。但是,即使所需的数据在表中,全文搜索也不会检索它。

以下是查询:

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

搜索到的数据如下:

I did

当然,这是在称为有限的列中。该表旁边的表中大约有100万行,因此通配符非常慢。

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

1 个答案:

答案 0 :(得分:2)

由于您使用ft_min_word_len,因此我必须假定您的表使用了myisam表引擎。

myisam stop word list上有did一词,这就是搜索未返回它的原因。

您可以disablechange停用词列表,也可以迁移到innodb,后者在其默认停用词列表中没有该词。

说实话,我想不出要在2019年使用myisam的任何理由。您确实应该迁移到innodb。