发布于 2014-12-09 09:35:34 | 329 次阅读 | 评论: 0 | 来源: PHPERZ
Coreseek 中文全文检索引擎
Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用
本文为大家讲解的是在centos下sphinx的安装和配置教程,感兴趣的同学参考下.
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用
coreseek相当于sphinx的中文版,多了一个mmseg中文分词插件,支持中文检索,coreseek是基于sphinx开发的.
系统环境:centos 7
软件版本:coreseek 3.2.14
coreseek官方网站是http://www.coreseek.cn,有很全面的资料。
shpinx的官网是http://sphinxsearch.com ,但新版本差别很大,基本就不用看了。
$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
$ tar xzvf coreseek-3.2.14.tar.gz
$ cd mmseg-3.2.14
$ ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..
因为新版本的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
否则会出现编译错误。
好了,可以正式的安装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 ..
如果上一步没有错误,这里就可以开始基础测试了,
$ 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 网络搜索
这些命令的执行是否正确,我觉得应该可以判断吧,就不写详细的结果了。
安装后,会有一个默认的例子
$ 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
启动搜索服务。
在解压缩的源代码目录下的api目录中,可以找到sphinxapi.php和test.php两个文件,执行test就可以进行测试了。PHP开发的时候,包含sphinxapi.php后,就可以仿照test进行搜索相关的开发了。