首页 > 代码库 > shpinx / coreseek 安装配置教程

shpinx / coreseek 安装配置教程

sphinx是一个专业的开源搜索引擎,但不支持中文。coreseek相当于sphinx的中文版,使用了mmseg3来支持中文分词。虽然coreseek里面的shpinx版本很低,目前稳定版的coreseek 3.2.14自带的shpinx只有0.9.9,但还用就行。很多教程中,先安装shpinx的最新版,再安装coreseek,这个,不知道是怎么传的,反正这么安装是完全没必要的。


我使用的环境是CentOS 7

coreseek官方网站是http://www.coreseek.cn,有很全面的资料。
http://sphinxsearch.com 是shpinx的官网,但新版本差别很大,基本就不用看了。


1. 下载

$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz


2. 解压缩


$ tar xzvf coreseek-3.2.14.tar.gz


3. 安装mmseg

$ cd mmseg-3.2.14
$ ./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..


4. 修改coreseek


因为新版本的gcc改动很大,所以需要修改coreseek的几处代码,在解压缩出的coreseek-3.2.14目录下,可以找到文件sphinxexpr.cpp
搜索// ‘this‘ fixes gcc braindamage可以找到3处 T val = ExprEval ( this->m_pArg, tMatch ); // ‘this‘ fixes gcc braindamage
修改成
T val = this->ExprEval ( this->m_pArg, tMatch ); // ‘this‘ fixes gcc braindamage
否则会出现编译错误。


5. 好了,可以正式的安装coreseek了,在这之前,请保证你的mysql或者mariadb安装正常,否则这一步无法配置数据源为mysql

$ cd csft-3.2.14 或者 cd csft-4.0.1 或者 cd csft-4.1
$ sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./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    ##如果提示mysql问题,可以查看MySQL数据源安装说明
$ make && make install
$ cd ..


6. 测试

如果上一步没有错误,这里就可以开始基础测试了,
$ cd testpack
$ cat var/test/test.xml    #此时应该正确显示中文
$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
$ /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索

这些命令的执行是否正确,我觉得应该可以判断吧,就不写详细的结果了。


7. 服务配置

安装后,会有一个默认的例子
$ mysql -u test < /usr/local/coreseek/etc/example.sql
执行这句安装例子需要的数据。

$ /usr/local/coreseek/bin/indexer --all
建立索引,--all会对所有的配置文件建立索引,目前我们只有一个,就无所谓了。同时也说明,sphinx可以同时存在多个配置文件的。

shpinx的守护进程是searchd,配置文件在/usr/local/coreseek/etc,如果你没有改上一步 --prefix参数的话。
默认的配置文件,名字是sphinx.conf.dist,复制一份,改成csft.conf。

打开csft.conf
找到charset_type项,修改配置,并添加charset_dictpath,注意 /usr/local/mmseg3/etc/ 要以/结尾并且要正确,这个目录下必须有uni.lib文件。
charset_type        = zh_cn.utf-8
charset_dictpath    = /usr/local/mmseg3/etc/

注释掉3行配置
# stopwords    = /var/csft/data/stopwords.txt
# wordforms    = /var/csft/data/wordforms.txt
# exceptions    = /var/csft/data/exceptions.txt

最后,检查一下数据库连接参数,在配置文件的最开始部分。

OK,保存配置文件。

$ /usr/local/coreseek/bin/search test
这个时候可以看到搜索结果。

$ /usr/local/coreseek/bin/searchd
启动搜索服务。


8. PHP测试

在解压缩的源代码目录下的api目录中,可以找到sphinxapi.php和test.php两个文件,执行test就可以进行测试了。PHP开发的时候,包含sphinxapi.php后,就可以仿照test进行搜索相关的开发了。

shpinx / coreseek 安装配置教程