coreseek(sphinx)linux安装以及配置。。

时间:2022-02-01 08:29:31

特别注意:如果用的是coreseek 则不用安装php的sphinx扩展,coreseek都有封装好的。所以不要走弯路哦。

一定要看官方的文档,安装Coreseek是有许多依赖包的,如果这些包没装,会出现各种问题。确保都存在这些包的境况下,在安装coreseek。

以下是官网的yum安装所需要的包

yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel


本地用的是nginx+php+linux环境 

Coreseek用的Coreseek-4.1

一、Coreseek安装

 1、下载Coreseek-4.1的源代码

wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz
tar xvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta

解压后发现有三个目录,主要的目录结构如下

coreseek-4.1-beta/    csft-4.1/          

 coreseek修改sphinx-2.0.1后的代码        api/            sphinx searchd[查询API][6]的实现   

 mmseg-3.2.14/       libmmseg分词库   

 testpack/           测试和配置示例    README.txt          介绍和安装指南

2、安装mmseg-3.2.14 (出现警告可以不用处理)

cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3
make && sudo make install
至此coreseek的中文分词包就安装成功了 usr/local/ 会出现mmseg3 以上步骤参考官网即可http://www.coreseek.cn/products-install/install_on_bsd_linux/

二、安装libiconv-1.14

先安装libiconv,用于字符集编码的转换。不装这个 安装csft-4.1时会报错

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure
make && sudo make install && ldconfig (如果没有出现以下错误请略过)

如果你的glibc版本在2.16以上,make时很有可能出现如下错误

In file included from progname.c:26:0:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
解决办法如下:

1、在libiconv-1.14目录下执行 (我用的是这种方法)

wget -O - http://blog.atime.me/static/resource/libiconv-glibc-2.16.patch.gz | gzip -d - | patch -p0

2、或者考虑直接注释掉srclib/stdio.in.h文件的第698行(应该没问题),即

//  _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
然后从新
make && sudo make install && ldconfig 即可

三、安装csft-4.1

 cd csft-4.1sh buildconf.sh./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-includes=/usr/include/mysql/include --with-mysql-libs=/usr/include/mysql/lib(后面的这几个路径是指向mysql的安装目录根据实际情况来定,官方文档有)make &&  make install
官网:http://www.coreseek.cn/products-install/install_on_bsd_linux/至此coreseek安装成功了 usr/local/ 下会出现coreseek文件夹证明安装成功coreseek(sphinx)linux安装以及配置。。
如果出现以下错误,请从新编译 生成 

如果sh buildconf.sh最后没有生成configure脚本,且提示automake: warnings are treated as errors,可以将configure.ac中的这行

AM_INIT_AUTOMAKE([-Wall -Werror foreign])

改为

AM_INIT_AUTOMAKE([-Wall foreign])

即删掉-Werror,然后重新运行sh buildconf.sh

如果configure的时候提示没有安装MySQL的头文件,从新安装一遍mysql即可。(http://jingyan.baidu.com/article/c74d600079be530f6a595dc3.html)安装mysql连接

如果你的gcc版本在4.7以上,编译的时候可能会因为sphinx的一个bug报错

sphinxexpr.cpp:1746:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]

解决方法参考bug报告里的一个patch,在csft-4.1目录下执行

wget -O - http://blog.atime.me/static/resource/sphinxexpr-gcc4.7.patch.gz | gzip -d - | patch -p0

或者你也可以直接修改src/sphixexpr.cpp文件的1746, 1777和1823行,将三行中的ExprEval改为this->ExprEval


注:最后一步make的时候本人在线上阿里云安装出现这个问题,前两种都没解决,是用方法三解决,l这是官网的文档,http://www.coreseek.cn/product_install/install_on_bsd_linux/#mysql
## 如果出现undefined reference to `libiconv'的类似错误,可以按照如下方法处理:
##方法一:(Linux使用)
## 直接执行:export LIBS="-liconv"
##然后make clean,再次configure后,进行编译安装make && make install
## 方法二:
## 首先configure,然后vim src/makefile
## 在其中搜索lexpat,在其后加上 -liconv
## 修改后该行应该为:-lexpat -liconv -L/usr/local/lib
## 然后再次make && make install
## 方法三:
## 首先configure,然后vim config/config.h
## 在其中搜索USE_LIBICONV,将其后的1修改为0
## 然后再次make && make install

如果安装都成功的话测试一下
$ 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 网络搜索
coreseek(sphinx)linux安装以及配置。。
coreseek(sphinx)linux安装以及配置。。coreseek(sphinx)linux安装以及配置。。


看到如上图的返回结果,那么恭喜你 安装成功,***************************************以上为安装步骤******************************************************************






coreseek 安装:参考   http://blog.atime.me/note/sphinx-coreseek-summary.html#0315ab   感谢他的文章给予我很大的帮助