使用以下查询搜索产品数据库。它在我们的后端用于查找要编辑的产品,跟随搜索词和查询工作正常。
搜索字词欧元等级
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
答案 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'
太短,因此甚至没有编入索引。
您需要更改参数值,然后重新构建索引。