【发布时间】:2015-04-01 10:21:17
【问题描述】:
我设置了ft_min_word_len = 1 并运行show variables like 'ft%'; 也显示相同。
也已经通过删除和重新创建全文索引来更新它们。
但是,当我对具有“Samsung Hg55nc890xf 3d 1080p Led lcd Tv Hdtv”作为值的行运行 SELECT OriginalProductName FROM products WHERE MATCH (ProductName) AGAINST ('+samsung +tv' IN BOOLEAN MODE); 时,它返回 0 个结果。
当我执行SELECT OriginalProductName FROM products WHERE MATCH (ProductName) AGAINST ('+samsung +led' IN BOOLEAN MODE);时它按预期工作
我使用的是 MySQL 5.6.22。 Innodb 是表引擎。
如何让 MySql 全文搜索搜索 tv、32、US 等 2 个字符的单词?
【问题讨论】:
-
我也有 5.6.22 和小于 3 的 ft_min_word_len 值不起作用。我的意思是我还可以看到显示变量中的值设置为 2,然后我重建了索引,但它没有生效。全文索引中我能找到的最短字符串仍然是 3 个字符长。
-
我找到的最接近的解决方案是
SELECT ProductName FROM products WHERE ProductName LIKE '%tv%' AND MATCH (ProductName) AGAINST ('+samsung' IN BOOLEAN MODE);
标签: mysql full-text-search full-text-indexing