我的表格中有一个'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
感谢。
答案 0 :(得分:1)
默认数据库引擎(我认为你有InnoDB)不支持全文搜索,所以你需要使用MyISAM数据库引擎。
答案 1 :(得分:0)
哈哈,没想到mysql全文只适用于MyISAM引擎。
将表格类型从InnoDB更改为myISAM解决了这个问题