MySql在全文搜索查询中错过了短文

时间:2015-06-01 15:31:26

标签: mysql

我的表格中有一个'on_phonetic'列,其中存储了地理坐标的拼音键。 值示例是:'KF'(基辅),'ASKRK,'KNX SSP'等

此列上放置了全文索引。 我正在启动的查询:

SELECT * FROM osm_nodes 
WHERE MATCH(`on_phonetic`) AGAINST ('LSF');

对于长度大于2的值,它可以正常工作。 但是对于长度为< = 2的值失败 所以,这个什么都不会返回

SELECT * FROM osm_nodes 
WHERE MATCH(`on_phonetic`) AGAINST ('KF');

然而,下面的查询(不是全文)会返回树记录

SELECT * FROM osm_nodes 
WHERE on_phonetic = 'KF';

我在my.ini文件中进行了以下更新

ft_min_word_len=2
ft_stopword_file = ""

重新启动服务器(确保我的更改出现在'变量'部分中),重建索引,甚至重新创建表 - 没有任何帮助。 有什么想法吗?

MySql版本为5.6.23-log,OS为Win7,x86_64

感谢。

2 个答案:

答案 0 :(得分:1)

默认数据库引擎(我认为你有InnoDB)不支持全文搜索,所以你需要使用MyISAM数据库引擎。

When to use MyISAM and InnoDB?

答案 1 :(得分:0)

哈哈,没想到mysql全文只适用于MyISAM引擎。

将表格类型从InnoDB更改为myISAM解决了这个问题