维基升级——搜索功能改进
通过对虾片(Xapian)一段时间的研究,终于能够实现中文网页的全文检索。MoinMoin 维基中的搜索终于可以使用虾片了!
使用Xapian改进全文检索的效率
MoinMoin维基缺省的全文检索机制是简单的内容查询,用到正则表达式匹配。MoinMoin维基还可以使用可选的Xapian(虾片)进行全文检索。- 虾片是由C++语言实现的全文搜索引擎,类似于Java世界中的Lucene
- 虾片通过 SWIG 提供各种语言绑定的 API 接口。对于Python来说,安装 python-xapian 即可
- 虾片不支持中文切词,因此中文检索无法实现
- MoinMoin维基还使用自己的切词方法,以便能够正确处理 Wiki Word 的切词,但是也没有考虑到中文切词
支持附件(Word文档,PDF文档)的全文检索
使用MoinMoin维基内置的搜索引擎不能对附件进行全文检索,是因为缺省的检索是简单的内容查找,而不能动态的(高效的)从附件中提取内容。 改用Xapian搜索引擎后,很容易的就可以实现对Word文档和PDF文档的全文检索:- 检索是基于事先生成的索引文件
- 每当有附件上传,自动提取附件中的中文内容,并根据内容建立索引
- 搜索时,同时能够显示命中的网页以及附件
如何升级到最新维基版本?
升级到最新版本的维基很简单,因为我们已经将升级需要的大部分手工操作都自动化了:- 更新APT源
sudo apt-get update
- 安装新版本的 MoinMoin
sudo aptitude install ossxp-moinmoin ossxp-moinmoin-xapian
- 自动进行 Xapian 索引数据库的初始化。建立索引的时间根据网站的规模,可能从几十秒种到数十分钟。
- 自动更新 MoinMoin 配置文件,使用 Xapian 作为缺省的全文检索引擎
- 需要手动重启Apache
- 对于老版本库的群英汇Apache,执行
sudo /etc/init.d/ossxp-apache2 restart
- 对于新版本库的群英汇Apache,执行
sudo /etc/init.d/apache2 restart
- 对于老版本库的群英汇Apache,执行
- 自此,您的知识管理平台,将使用新的搜索引擎,进行享用新引擎带来的便利吧。