一、前言
dede内容管理系统,算是国内比较主流的一款cms了。
今年做项目时也接触了两次。它的搜索功能比较薄弱,默认情况下只是对文章标题和关键字进行搜索,而且使用的是数据库的like方式查询,数据量一旦突破10W可能就会产生一些性能的瓶颈。
这里我们对它进行一些改造,让它的搜索不仅仅只是搜索标题和关键字,还包括文章内容。使用全文检索引擎,替换性能低下的like查询方式。
开源免费的全文检索引擎比较主流的选择有:lucene和sphinx,由于我们是php环境,方便起见,这里选择可以和mysql数据库完美结合的sphinx
二、Sphinx 简介
出自俄罗斯的开源全文搜索引擎软件Sphinx , 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。
官方网站:
http://www.sphinxsearch.com
推荐博文:
http://blog.s135.com/post/360/
三、Coreseek 简介
Coreseek是基于Sphinx的一款软件,对Sphinx做了一些改动,主要是中文切分词方面更合理一些
变更如下:
改进MMSeg切词策略,支持产品型号的切分
修正MMSeg切分结果不一致的问题
增加MMSeg的Python接口(Win32 Only)
修正了PySource的若干错误
为主流的Linux平台提供的预编译二进制包
官方网站:
http://www.coreseek.cn/
帮助手册pdf下载:
http://www.coreseek.cn/uploads/pdf/sphinx_doc_zhcn_0.9.pdf
四、准备工作
在对dedecms进行改动前,首先要安装Coreseek。Coreseek的安装可以查看上面提到的帮助手册,需要提醒的是:
1、Coreseek可以跑在windows环境下,但仅可用于测试
2、安装前需要首先安装python环境
Coreseek的安装方法还可以通过搜索得到
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=coreseek+%E5%AE%89%E8%A3%85&btnG=Google+%E6%90%9C%E7%B4%A2&aq=f&oq=
这里就不做重复了,我的这次测试是在windows xp环境下进行的(公司有个discuz论坛也是用的Sphinx做全文检索,跑在linux下)。
五、Sphinx的config设置