MySQL MATCH AGAINST 未给出结果

MySQL MATCH AGAINST not giving result

我已经用 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)

我得到这些输出:

我真的不明白为什么 'Kop van Jut' 没有得到大于零的值。我也试过使用双引号、加号等等。没有任何效果。

谁能告诉我我做错了什么?

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

  • Some words are ignored in full-text searches:

    Any word that is too short is ignored. The default minimum length of words that are found by full-text searches is three characters for InnoDB search indexes, or four characters for MyISAM.

如果您可以设置系统变量,则可以将 ft_min_word_len 的值向下调整为 3,以使您的匹配在该特定搜索字符串上起作用。