我做了一个mysql语句,并与之匹配。我不习惯用这个函数,但看起来很简单。
但当我使用这个查询时:
SELECT productnaam,
productomschrijving,
MATCH (productnaam, productomschrijving) AGAINST('Kop van Jut'),
MATCH (productnaam, productomschrijving) AGAINST('Springkussen')
FROM product
WHERE product.productid in (508, 578)
我得到这些输出:
我真的不明白为什么我不能得到一个大于零的值。我也试过用双引号,加号等等。什么都不管用。
有人能告诉我我做错了什么吗?
1条答案
按热度按时间xytpbqjk1#
原因是什么
'Kop van Jut'
如果搜索字符串中的单词太短,则返回0。对于myisam表,全文搜索中考虑的最小字长为4个字符。根据手册:在全文搜索中,某些词被忽略:
任何太短的词都会被忽略。通过全文搜索找到的单词的默认最小长度对于innodb搜索索引是三个字符,对于myisam是四个字符。
如果可以设置系统变量,则可以调整
ft_min_word_len
减少到3,使您的匹配工作在特定的搜索字符串。