1 yum install -y python python-devel
2
3 wget http://www.coreseek.cn/uploads/csft/3.1/Source/mmseg-3.1.tar.gz
4 wget http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz
5
6 tar zxvf mmseg-3.1.tar.gz -C /usr/local/src/
7 tar zxvf csft-3.1.tar.gz -C /usr/local/src/
接下来,安装MMSeg中文分词包,其在GPL协议下发行的中文分词法,采用Chih-Hao Tsai的MMSEG算法,切分速度大约在300K/s(PM- 1.2G)。当然你也可以根 据自己的业务需要,选择其他特定的分词包。
view source
print?
1 cd /usr/local/src/mmseg-3.1/
2 ./configure --prefix=/usr/local/mmseg
3 make
4 make install
安装完毕之后,我们需要做一些配置文件的修改,否则很可能在后面安装coreseek的时候编译失败。我们先手工修改 /usr/local/mmseg/include/mmseg/freelist.h文件。
view source
print?
1 vi /usr/local/mmseg/include/mmseg/freelist.h
2 #添加如下内容
3 #include
4
我们开始编译coreseek的全文检索服务的源码,仅仅编译,暂时不要执行安装。
view source
print?
1 cd /usr/local/src/csft-3.1/
2 ./configure --prefix=/usr/local/coreseek --with-python --with-mysql --with-mmseg-includes=/usr/local/mmseg/include/mmseg --with-mmseg-libs=/usr/local/mmseg/lib/
现在是比较关键的一步,首先检查系统内是否安装libiconv包,如果没有安装,可以参阅本博客的另一篇文章VPS配置LNMP笔记(三) PHP篇。安装完毕 之后,修改csft-3.1目录下的src/Makefile文件,找到 LIBS = -lm -lexpat -L/usr/local/lib 修改为 LIBS = -lm -lexpat -liconv -L/usr/local/lib,然后执行make && make install完成coresseek的安装。
接下来,我们安装全文检索分词的词库,通过之前的mmseg生成字典。
view source
print?
1 mkdir /usr/local/coreseek/dict
2 cd /usr/local/src/mmseg-3.1/data/
3 /usr/local/mmseg/bin/mmseg -u unigram.txt
4 cp unigram.txt.uni /usr/local/coreseek/dict/uni.lib
建立sphinx的配置文件,具体的配置参数此处略过,请详细参考coreseek的手册
view source
print?
1 cp /usr/local/coreseek/etc/sphinx.conf.dist /usr/local/coreseek/etc/sphinx.conf
2 vi /usr/local/coreseek/etc/sphinx.conf
将sphinx命令配置到系统环境中,并加载mysql的lib,否则可能会导致sphinx启动时提示找不到mysql服务
view source
print?
1 vi /etc/profile
2 #添加下一行
3 export PATH=/usr/local/coreseek/bin:$PATH
4 #保存后执行source 导入
5 source /etc/profile
6
7 vi /etc/ld.so.conf
8 #添加下一行
9 /usr/local/mysql/lib/mysql
建立开机启动sphinx服务,此处一定要加入--pidfile文件,以免shell自启动找不到进程pid。
view source
print?
1 vi /etc/rc.local
2 /usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/sphinx.conf --pidfile
创建每日凌晨1点自动更新索引脚本:
view source
print?
1 vi /usr/local/coreseek/bin/build_index.sh
2 /usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf --all --rotate
3 #修改文件执行权限
4 chmod +x /usr/local/coreseek/bin/build_index.sh
5 #修改crontab
6 crontab -e
7 00 01 * * * /bin/bash /usr/local/coreseek/bin/build_index.sh
这样,我们就已经将coreseek(sphinx)安装完毕,在开发过程中,只需要将/usr/local/src/csft-3.1/api /sphinxapi.php文件引入项目,就可以使用sphinx的API进行搜索查询。