MySQL搜索与搜索词中的整数匹配

时间:2014-03-03 12:01:06

标签: php mysql sql

使用以下查询搜索产品数据库。它在我们的后端用于查找要编辑的产品,跟随搜索词和查询工作正常。

搜索字词欧元等级

SELECT * FROM product_descriptions WHERE MATCH(product_name) AGAINST('"+euro* +grade*"' IN BOOLEAN MODE) LIMIT 10

输出:

product id    product_name       price
1             Euro Grade 20k     200.00
2             Euro Grade 30k     300.00
3             Euro Grade 40k     400.00

但是,如果我们想在搜索查询中使用整数进行搜索,则不会返回结果

搜索字词:欧元等级40k

SELECT * FROM product_descriptions WHERE MATCH(product_name) AGAINST('"+euro* +grade* +40k*"' IN BOOLEAN MODE) LIMIT 10

2 个答案:

答案 0 :(得分:0)

可能是问题是由于mysql中的以下限制:

全文搜索的默认最小长度为4个字符。因此,如果您想搜索少于4个字符的单词,则可以使用变量ft_min_word_len和ft_max_word_len更改最小和最大字长。

答案 1 :(得分:0)

问题可能是系统变量ft_min_word_len。此值的默认值为4(如here所述),表示忽略1,2和3个字符的单词。您的单词'40k'太短,因此甚至没有编入索引。

您需要更改参数值,然后重新构建索引。