我需要搜索产品并按相关性对其进行排序,因为我尝试了此MySQL查询
SELECT *, MATCH(`SubProductName`) AGAINST ('+app*' IN BOOLEAN MODE) AS
relevance FROM `tblsubproducts1` WHERE MATCH(SubProductName) AGAINST
('+app*' IN BOOLEAN MODE) ORDER BY relevance DESC
例如,该查询返回:Apple Thunderbolt,Apple TV ...作为结果。哪个是对的。
但是,当我尝试使用'+usb*'
它时,它不返回任何行,而数据库包含一个行,SubProductName
USB-C Charge Cable
通过匹配可以找到该行'+cable*'
为了澄清,我希望搜索可以使用部分单词,例如苹果的“ app”,这就是我添加的*
原因,但是为什么它似乎并不总是有效,这使我感到困惑。是-
inUSB-C
还是...?
如果您使用的是MyISAM,则全文索引的最小字长为4。(在此处记录。)
换句话说,“ usb”甚至不在索引中。您需要更改此参数并重新生成索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句