Sphinx 是由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包。
coreseek-3.2.13基于Sphinx 0.9.9 release开发,为Sphinx 贡献了:
· GBK编码的数据源支持
· 采用Chih-Hao Tsai MMSEG算法的中文分词器
· 中文使用手册
全面支持:Freebsd 6、7、8、Redhat、CentOS、Fedora、Debian、Ubuntu、Gentoo、OpenSUSE、Slackware、ArchLinux、Windows XP、Windows 2003、Windows 7、Windows Server 2008等各类32位以及64位操作系统!
下面开始安装
1.安装准备程序
1 | yum -y install gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel |
2.安装mmseg
wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.13.tar.gz
cd coreseek-3.2.13
mmseg和csft都在这个目录下
cd mmseg-3.2.13/
./configure –prefix=/usr/local/mmseg3
出现如下错误提示:
1 | configure: creating ./config.status |
2 | config.status: creating Makefile |
3 | config.status: creating src/Makefile |
4 | config.status: error: cannot find input file: src/Makefile.in |
采用一下方法处理
7 | ./configure --prefix=/usr/ local /mmseg |
安装完成后,mmseg使用的词典和配置文件,自动安装在/usr/local/mmseg/etc中
3.安装csft
2 | ./configure --prefix=/usr/ local /coreseek --without-python --with-mysql --with-mmseg --with-mmseg-includes=/usr/ local /mmseg/include/mmseg/ --with-mmseg-libs=/usr/ local /mmseg/lib/ |
顺利通过
make时出错
/home/src/coreseek-3.2.13/csft-3.2.13/src/tokenizer_zhcn.h:70: undefined reference to `libiconv_open’
/home/src/coreseek-3.2.13/csft-3.2.13/src/tokenizer_zhcn.h:73: undefined reference to `libiconv’
试了多种方案,无效。然后以带–without-iconv的参数安装通过。但是在indexer索引的时候会出错。创建索引时提示:unknown charset type ‘zh_cn.gbk’。查看文档中的说明:对于中文用户,可选的值还可以有“zh_cn.utf-8 ”和“zh_cn.gbk”。当设置charset_type值为上面的两种时,系统默认您开启了中文分词特性。当设置charset_type = zh_cn.gbk,系统在configure时 会检测libiconv,如果存在,则开启转码机制以支持gbk;如果不存在则只支持utf-8 。因此,通过–without-iconv的方法安装也是不可行的。
最后找到如下方法,修改src/Makefile,
搜索LIBS找到这行:
LIBS = -lm -lz -lexpat -L/usr/local/lib -lrt -lpthread
修改为:
LIBS = -lm -lz -lexpat -liconv -L/usr/local/lib -lrt -lpthread
编译终于通过了,Coreseek3.2.13安装完成。
PS:coreseek支持latin1,GBK,UTF-8编码的MYSQL索引,原版的sphinx只支持单字节字符集和UTF-8编码。