MySQL MATCH AGAINST没有给出结果

时间:2018-12-17 11:32:51

标签: mysql match-against

我已经用MATCH AGAINST声明了MySQL语句。我不习惯使用此功能,但是看起来确实很简单。

但是当我使用此查询时:

SELECT productnaam, 
       productomschrijving, 
       MATCH (productnaam, productomschrijving) AGAINST('Kop van Jut'), 
       MATCH (productnaam, productomschrijving) AGAINST('Springkussen')
FROM product
WHERE product.productid in (508, 578)

我得到以下输出: enter image description here

我真的不明白为什么'Kop van Jut'的值不大于零。我也尝试过使用双引号,加号等。什么都没有。

有人可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

'Kop van Jut'返回0结果的原因是搜索字符串中的单词太短。对于MyISAM表,在全文搜索中考虑的最小单词长度为4个字符。来自manual

  
      
  • 在全文搜索中某些单词会被忽略:

         

    任何太短的单词都会被忽略。全文搜索发现的默认最小单词长度为三个字符   InnoDB搜索索引,或MyISAM的四个字符。

  •   

如果您可以设置系统变量,则可以将ft_min_word_len的值调低至3,以使匹配项适用于该特定搜索字符串。