Sphinx and CoreSeek

Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。

一、安装

1.下载安装包并解压

1
2
3
4
5
6
#进入本地安装包目录
$ cd /usr/local/src
#下载安装包,(由于GFW)这个链接有可能下载不了
$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
#解压安装包
$ tar zxvf coreseek-3.2.14.tar.gz

2.安装中文分词mmseg
因为后面安装sphinx需要configure –with-mmseg所以先安装中文分词mmseg

1
2
3
4
5
6
7
8
9
10
#进入mmseg中文分词目录
$ cd mmseg-3.2.14
#引导指定mmseg安装目录
$ ./bootstrap
$ ./configure --prefix=/usr/local/mmseg
#此时可能会报错,如果报错执行automake再次configure
$ automake
$ ./configure --prefix=/usr/local/mmseg
#执行编译安装
$ make && make install

3.安装csft(sphinx)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#进入csft目录
$ cd ../csft-3.2.14
#指定csft安装目录、mmseg目录、mysql目录等
$ sh buildconf.sh
$ ./configure --prefix=/usr/local/coreseek --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql=/phpstudy/mysql
#如果此时mysql指定报错(yum源安装的mysql服务可能会报此错误),修改--with-mysql参数为--with-mysql-includes和--with-mysql-libs 如下:
$ ./configure --prefix=/usr/local/coreseek --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib64/mysql/
#执行编译安装
$ make && make install
#此时有可能会报错('ExprEval' was not declared in this scope),网上查找大概意思是GCC版本过高不兼容的问题,解决办法:修改文件src/sphinxexpr.cpp,把报error的行数的ExprEval改为this->ExprEval并保存
$ make clean
$ vi src/sphinxexpr.cpp
#再次执行安装
$ make && make install