MySQL通过与通配符相关的全文搜索

时间:2016-04-15 12:07:07

标签: mysql full-text-search full-text-indexing

我需要搜索产品并按相关性对它们进行排序,因为我尝试了这个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行,我可以通过匹配{{1 }}

为了澄清,我希望搜索能够使用像“应用程序”这样的部分单词。对于苹果而言,这就是我添加'+cable*'的原因,但为什么它似乎总是起作用,这让我感到困惑。它是*中的-还是......?

1 个答案:

答案 0 :(得分:1)

如果您使用的是MyISAM,则全文索引的最小字长为4.(记录为here。)

换句话说,“usb”甚至不在索引中。您需要更改此参数并重新构建索引。