2014-02-10 39 views
0

比赛这是我的过滤器文本:对不决策意识

奥利弗旧书

如果我搜索“奥利弗”它的工作原理,如果我搜索“书”它的工作原理,但如果我搜索'使用'它不起作用。

加热器白扇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) 

为什么D'地狱确实字used不行,字book作品?他们有相同的长度。

我也试过这个建议Mysql search for string and number using MATCH() AGAINST()没有成功。

编辑:解决,请按照此说明。 XAMPP MySQL - Setting ft_min_word_len

+1

从标题中删除'PHP'。你的问题与PHP – hindmost

+0

无关fancyPants为我做了。抱歉。 – user3243925

回答

1

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

+0

好吧,回答一个问题。我还读到最小长度是4,并且忽略它,我应该在这个词之前使用+。 '+ fan'继续不起作用。 – user3243925