项目中遇到语义智能回答问题,所以必须得上搜索引擎。考虑到成熟度,只在lucence和sphinx中评估。但是整个项目比较小,都是php开发的,所以不想再布一套java环境。
而且我自己也是个c程序员,所以倾向于sphinx,于是开始了漫漫填坑之路。
中间有个插曲,杭州有个公司在xapian的基础上搞出来一个xunsearch,听名字就像中国人写的。据说也很牛,也顺便测试了一下。基本上仿造coreseek,但是检索和建索速度都差一个量级。所以最终还是使用sphinx的coreseek板。
coreseek的安装测试都没什么一路next。
这里面重要的几个问题。
1.coreseek的官网已经好久没有新版本更新了,4.0.1的版本还是个bate版,但是考虑到3.2的版本对应的sphinx太老了,还是硬着头皮上4.0版了。
coreseek的下载很慢很慢....,翻墙也不行,后来就从同事那要了一个源码包。
2.coreseek的安装需要mysql的lib,如果mysql是yum安装的可能会导致找不到头文件和lib文件,最好是用源码安装的mysql。
3.coreseek安装完成后有个测试,是xml格式的文件分词和建索,需要有expat和expat-devel,简单的yum install expat-devel*就可以了
4. 编译的时候会遇到
make[2]: *** [indexer] Error 1
make[2]: Leaving directory `/root/coreseek-4.1-beta/csft-4.1/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/coreseek-4.1-beta/csft-4.1/src'
make: *** [all-recursive] Error 1
一般是因为iconv不在/usr/local/lib目录下
编辑:
./src/MakeFile文件
将
LIBS = -lm -lexpat -L/usr/local/lib
改成
LIBS = -lm -lexpat -liconv -L/usr/local/lib
下面罗列一个过程:
wgethttp://www.coreseek.cn/uploads/csft/4.0/coreseek-3.2.14-beta.tar.gz
tar -zxvf coreseek-3.2.14-beta.tar.gz
cd coreseek-3.2.14-beta
cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3 #配置安装目录
make
make install
cd ..
yum install expat*
cd csft-3.2.14
sh buildconf.sh
./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql=/usr/local/mysql
make
make install
cd..
剩下的就是配置,参考sphinx官网就行了