现代化的全文检索引擎都对双字节有很好的支持,但是对于索引来说关键性的分词算法,则由于和语言特征直接相关,一般来说都需要单独开发。Ruby的世界里有两个出名的搜索引擎,一个是老资格的Ferret(这个站点貌似最近访问不到),另一个日渐热门的新贵Sphinx,当然这俩都不直接支持中文分词,而它们可以使用的中文分词算法目前看到的似乎是两个,都基于台湾蔡志浩mmseg算法(基本上完全开放自由的中文分词算法很少,这个是不是唯一的我不清楚)。一个是CoreSeek的李沫南用C++实现的libmmseg,这个据说不错,但在我的Mac OS X下编译不能(BSD的一些头文件位置和Linux不一样);另一个是pluskid用Ruby编写的rmmseg,以及后面用C++改写的版本rmmseg-cpp,JavaEye的robbin有篇介绍提到它们的对比,可以参考。

因为我这里只能安装rmmseg,rmmseg-cpp版本也有问题rmmseg-cpp的问题经过和pluskid的交互已通过最新的patch解决,所以先研究这个,希望能够给MRP的全文检索功能找到解决方案。