Centos7下安装Coreseek

由于工作需求,需在站点中添加一个检索的功能,检索的条件有三个且权重为  标题 > 标签 > 内容。在技术选型的过程中考虑了Lucenne、Sphinx、XunSearch三种索搜引擎,加上业务的需求,数据量大致在一万左右,而且是用PHP开发,所以最终选择了XunSearch,XunSearch对中文的支持也是非常棒的,也提供了全面的API文档,开发起来非常快。Lucenne、Sphinx对大数据量支持的比较好,性能很高。Lucenne需要java环境的支持而我这里是PHP的环境,所以排除了。再来看看我们的Sphinx:

Sphinx支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒)

高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)

高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录)

支持分布式检索

支持基于短语和基于统计的复合结果排序机制

支持任意数量的文件字段(数值属性或全文检索属性)

支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)

支持作为Mysql的存储引擎

等等。。。

在网上找了很多安装教程,安装的狠蛋疼,最终在博客上找到了一个比较好的,原文点这里,我在它上面改了一点东西,扩展性变得也比较好,关于Coreseek的说明网上一大推,这里就不再说了,个人理解Coreseek = Sphinx + 中文分词。废话不多说,进入正题

1、先安装环境:

yum install make gcc gcc++gcc-c++libtool autoconf automake imake mysql-devellibxml2-develexpat-devel

注: 检测以上软件是否安装,如果没有请确保安装;否则无法正常安装Coreseek-3.2.14

2、开始安装:

在coreseek的官网下载coreseek-3.2.14.tar.gz,传到自己的服务器/usr/local/下,反正我在使用命令wgethttp://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz没有下载成功,

注意:原文mmseg是安装在/usr/local/mmseg3下,我是安装在/usr/local/mmseg,所以导致我在后面创建索引的时候报错,如图

后来摸索着在路径/usr/local/coreseek-3.2.14/testpack/etc在这个路径下,将代码

charset_dictpath = /usr/local/mmseg3/etc/改成charset_dictpath = /usr/local/mmseg/etc/就可以。。。

进入/usr/local/下

tar -zxvf coreseek-3.2.14.tar.gz

cd coreseek-3.2.14

##############安装 mmseg #################

cd mmseg-3.2.14

./bootstrap   #输出的warning信息可以忽略,如果出现error则需要解决,一般不会出现错误

./configure --prefix=/usr/local/mmseg    #指定 mmseg 的安装目录

make && make install

#############安装 csft-3.2.14 ###############

cd /usr/local/coreseek-3.2.14/csft-3.2.14

#这里我们要修改 src/sphinxexpr.cpp 文件,将该文件中的 1013、1047、1080 行的 ExprEval 改为 this->ExprEval(这里的行数跟网上的教程说的行数不一样,可能是版本的问题吧,但是如果你用的是我提供的版本,该行数是正确的),懂点 C++ 的同学也可以自己看看 ExprEval 错在哪里。哈哈我不懂C++都看懂了。。。

#改完上面所说的问题后:

sh buildconf.sh

./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/--with-mmseg-libs=/usr/local/mmseg/lib/--with-mysql

make && make install

在安装的过程中,只要不提示错误 error,那么其他的如 warning 信息都是可以忽略的。

至此我们已经成功的将中文检索引擎安装到我们服务器上来了。

3、测试

进入目录/usr/local/coreseek-3.2.14/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 网络搜索#搜索关键字 网络搜索

/usr/local/coreseek/bin/searchd -c etc/csft.conf                       #正常开启搜索服务

/usr/local/coreseek/bin/searchd -c etc/csft.conf--stop             #如要停止搜索服务

/usr/local/coreseek/bin/indexer -c etc/csft.conf--all --rotate     #如要已启动服务,要更新索引


到此安装和测试都完成了。。。具体的在后面慢慢研究

推荐阅读更多精彩内容