sphinx 全文检索最新svn版本中文分词移植

发布: 2010-09-19 22:16

近期的空闲时间都用在全文检索上了.用了几天晚上熟悉回忆了以前设计过的一个中文全文检索引擎,到上周未用了两天的时间,把coreseek的中文分词模块移植到了sphinx-svn-r2473版本.
做这个移植的原因主要是,sphinx现在的beta版本提供了许多优秀强大的功能,但一直没有发正式版本,但设计中需要这些非常好的功能,所以做了下移植工作.
本次中文分词模块的移植基础以coreseek-3.2.3版本为中文分词模块的原本,以sphinx-svn-r2473为核心的移植.移植过程还比较简单,在于coreseek和sphinx关于分词的模块都做的相对比较好,因此,只需要根据中文模块在sphinx原版基础加入相关的分词模块文件,或者是加入几行代码即可.
另外,在这些移植中,由于希望以改动最小的情况下实现其中文分词功能,再一个对python不太熟悉,自己使用的时候暂时没有列入讨巧,并没有把coreseek中的python数据源移植过来.
虽说比较简单,移植过程还是一个地方出了点问题,那就是复杂的sphinx.cpp文件.从sphinx-0.9.9到sphinx-1.1x.x版本,还是变化挺大,有几个函数的原型都变了,类的成员变量稍有点变动,经过一次测试,认真对比coreseek-3.2.3如何添加的分词模块,阅读了一些sphinx-svn中相关的代码,才最后解决.
目前已经做出一个demo,在做索引及客户端搜索时都能用到中文分词模块的分词功能, 另外还能用到sphinx-1.x beta的新功能. 库中有12w数据,共计150M索引,搜索5,6个中文词速度也很快,在0.010秒左右.这个结果还是很满意.
计划把这个做成一个产品的形式,还有许多工作要做, 本站点的数据已经导入到索引库,再做成熟一点,加入外围的相关接口后,把本站的全文搜索入口指向这个demo.
现在这个demo已经在服务器上测试运行,由于结构尚未定型,经常重启动,没有多少数据的说服力等等,暂时先不放出来.等再整理一个这个最小的中文分词patch,一块放出来.


原文: http://qtchina.tk/?q=node/508

Powered by zexport