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