日期:2014-05-16 浏览次数:20538 次
长期以来,Ruby On Rails框架下全文检索一直是个麻烦事情。不多的几种选择要么就是太麻烦,要么就是不稳定。以前我都是用Mysql的myIsam引擎自带的全文检索。但随着数据量的增大,用myisam引擎的数据损坏风险也开始凸显。如今Mysql5.6版终于在Innodb中内置了全文检索功能,看来强大功能与低风险终于可以兼得了。
有几个疑问解释一下:
1:mysql5.6版目前还是开发版本,不是稳定版本,但也可以下载。安装方式与稳定版一样。
2:mysql全文检索的分词方式只遵循英语世界的空格分词。对于中文无法分词。所以我的方法是建一个影子字段,上层用分词器分好词后存入表中。查询的时候也事先用分词器分好。我用的是RMMSeg,挺简单实用。
3:mysql内置innodb的最小分词长度必须改为1,否则大多数情况下无法查询。innodb_ft_min_token_size=1