coreseek 简介
coreseek是一款基于sphinx开源的全文搜索引擎,与sphinx不同的是coreseek增加了一个带有中文分词的词库。
下载coreseek安装包
本篇使用coreseek3.2.14稳定版进行讲解,最新版本是4.1,但是只有测试版。可以尝试去官方地址http://www.coreseek.cn/下载安装包,不过貌似官方下载地址已经崩溃,如果下载不成功的话可以去网上查找其它下载渠道,我的是在新浪微盘上下载的,附上地址http://vdisk.weibo.com/s/z-JIj1kq4Z81。
开始安装
在安装coreseek之前确保在系统安装了LNMP/LAMP环境。
安装依赖软件
yum install gcc make gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
将下载好的安装包上传到Linux,执行解压命令,解压完成后进入目录
tar xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14
将会看到3个目录分别是csft-3.2.14、mmseg-3.2.14、testpack,其中csft实际就是sphinx安装包,mmseg为中文分词安装包,testpack是安装完coreseek后测试用的。首先安装中文分词
cd mmseg-3.2.14
./configure --prefix=/usr/local/mmseg/
如果出现如下错误config.status: error: cannot find input file: src/Makefile.in
请执行
aclocal
libtoolize --force
automake --add-missing
autoconf
autoheader
make clean
执行编译并安装mmseg
make && make install
到这里mmseg安装完毕,可以测试下中文分词
echo '我们是中国人'>1.txt
/usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc 1.txt
接下来安装coreseek
cd ../csft-3.2.14
sh buildconf.sh #生成configure可执行文件,如果当前目录已存在configure文件会发出警告:已存在其它版本autoconf,但不能保证能正常工作,如果出现任何问题,建议重新生成
./configure --prefix=/usr/local/coreseek \
--without-unixodbc \
--with-mmseg=/usr/local/mmseg \
--with-mmseg-includes=/usr/local/mmseg/include/mmseg/ \
--with-mmseg-libs=/usr/local/mmseg/lib/ \
--with-mysql
make && make install
到此coreseek就全部安装完成了,测试一下coreseek
cd ../testpack #进入安装包提供的测试目录
/usr/local/coreseek/bin/indexer -c etc/csft.conf --all #创建索引
/usr/local/coreseek/bin/search -c etc/csft.conf '我们是中国人'
创建索引时可能会出现以下错误
1./usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
#解决办法
echo '/usr/local/mysql/lib'>>/etc/ld.so.conf
ldconfig
2.Unigram dictionary load Error Segmentation fault
#解决办法(补充说明:这个是由于字典的路径不对,如果前面设置的字典所在目录名称就是mmseg3就不会出现这个问题了,坑...)
sed 's/mmse3/mmseg/' etc/csft.conf
安装sphinx扩展for php
#sphinx扩展依赖于libsphinxclient,先安装libsphinxclient
cd api/libsphinxclient
./configure
make && make install
#下载并安装sphinx扩展
wget http://pecl.php.net/get/sphinx-1.3.2.tgz
tar zxvf sphinx-1.3.2.tgz
cd sphinx-1.3.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
安装libsphinxclient时如果报如下错误sphinxclient.c:1216: error: static declaration of 'sock_close' follows non-static declarationsphinxclient.c:280: note: previous declaration of 'sock_close' was here
请执行
sed -ie '280s/^/static /' sphinxclient.c
接下来修改php.ini文件
增加下面这行到合适的位置,例如extension_dir配置行下面
extension=sphinx.so
执行下面的命令,可以看到sphinx扩展模块已添加到php里了
/usr/local/php/bin/php -m #查看php扩展模块列表
不过此时还不能在php中使用sphinx,需要重启php-fpm,我这里采用php-fpm.pid文件控制php-fpm进程
执行重启php-fpm命令
kill -USR2 `/usr/local/php/var/run/php-fpm.pid`
重启成功后打印phpinfo()
作者:Barry锋
链接:http://www.jianshu.com/p/825872bc6d0e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。