匹配没有意义

时间:2014-02-10 11:32:59

标签: mysql match

这是我的过滤文字:

  

奥利弗用过书

如果我搜索'Oliver'它是有效的,如果我搜索'book'它可以工作,但如果我搜索'used'它不起作用。

  

加热器白色风扇HEOP1322

Heater -> works : white -> works : fan -> does not work : HEOP -> does not work : HEOP1322 -> works.

我的查询是这样的:

SELECT * FROM table WHERE MATCH(filter) AGAINST ('fan' IN BOOLEAN MODE)
SELECT * FROM table WHERE MATCH(filter) AGAINST ('HEOP' IN BOOLEAN MODE)
SELECT * FROM table WHERE MATCH(filter) AGAINST ('used' IN BOOLEAN MODE)

为什么地狱used无效,单词book有效?它们的长度相同。

我也尝试了这些建议Mysql search for string and number using MATCH() AGAINST()但没有成功。

修改:已解决,请按照此说明操作。 XAMPP MySQL - Setting ft_min_word_len

1 个答案:

答案 0 :(得分:1)

“used”是默认的MySQL全文停用词之一:https://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html。停用词是被忽略的词,因为它们在(英语)语言中过于频繁,并且不会对全文搜索的结果做出积极贡献。如果您只查询单个字词,则LIKE %..%查询可能比完整的全文搜索更适合。