月度归档:2018年09月

centos coreseek4.1安装和配置

概念

1. sphinx是国外的一款搜索软件,一款基于SQL的高性能全文检索引擎
2. coreseek是在sphinx的基础上,增加了中文分词功能,增加对中文的支持。4.1版本是2011年发布的,它是基于Sphinx2.0.2的。
  1. 安装依赖
yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
  1. 下载coreseek-4.1-beta.tar.gz
链接: https://pan.baidu.com/s/1RA8_p_SiE5LCyG26Mw0ODg 提取码: 7cdw
  1. 首先安装mmseg中文分词
tar zxvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta/mmseg-3.2.14/
./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决
./configure --prefix=/usr/local/mmseg
make && make install
---------------------------------------

#编译时可能会报错config.status: error: cannot find input file: src/Makefile.in
yum -y install libtool
automake
#如果automake报错 原因可能是下列
Libtool library used but `LIBTOOL' is undefined
The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
to `configure.ac' and run `aclocal' and `autoconf' again.
If `AC_PROG_LIBTOOL' is in `configure.ac', make sure
its definition is in aclocal's search path.

configure命令执行之前,执行

aclocal  
libtoolize --force  
automake --add-missing  
autoconf  
autoheader  
make clean  
执行完之后,从新执行configure命令
./configure --prefix=/usr/local/mmseg
  1. 安装coreseek
cd csft-4.1/
./buildconf.sh
./configure --prefix=/usr/local/coreseek --with-mysql=mysql安装目录 --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/

#遇到的问题:  
at  -L/usr/local/lib -lrt  -lpthread
修改MakeFile文件和src/MakeFile文件
vim Makefile
LIBS = -lm -lexpat -L/usr/local/lib
改成
LIBS = -lm -lexpat -liconv -L/usr/local/lib
# configure 之后修改

问题:执行 buildconf.sh 报错,无法生成configure文件

# csft-4.1/buildconf.sh 文件中,查找
&& aclocal \
后加上
&& automake --add-missing \
# csft-4.1/configure.ac 文件中,查找
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
改成
AM_INIT_AUTOMAKE([-Wall foreign])
查找:AC_PROG_RANLIB 
后面加上:AM_PROG_AR
#最后,在 csft-4.1/src/sphinxexpr.cpp 文件中, 替换所有
T val = ExprEval ( this->m_pArg, tMatch );
改为
T val = this->ExprEval ( this->m_pArg, tMatch );

小技巧:末行模式下输入“:1,$s/T val = ExprEval ( this->m_pArg, tMatch )/T val = this->ExprEval ( this->m_pArg, tMatch )/g”从第一行开始替换到最后一行

  1. 修改配置csft.conf,增加对中文支持
打开csft.conf
index test1 段下面,增加
charset_type = zh_cn.utf-8
charset_dictpath =/usr/local/mmseg/etc/
  1. 测试
cd /usr/local/coreseek/bin
./indexer --all
./search 四十
  1. coreseek的bin目录
1. /usr/local/coreseek/bin/indexer #indexer文件,用于建立/更新/合并数据源的索引
# 例子
/usr/local/coreseek/bin/indexer -c etc/csft.conf --all #csft.conf配置文件中配置的所有数据源建立索引
2. /usr/local/coreseek/bin/search # search文件,用于测试数据源的搜索
# 例子
/usr/local/coreseek/bin/search -c etc/csft.conf 网友 #测试csft.conf配置文件中配置的数据源是否有“网友”这个内容
3. /usr/local/coreseek/bin/searchd # searchd文件,负责接受查询、处理查询和返回数据集的服务
# 例子
/usr/local/coreseek/bin/searchd -c etc/csft.conf 通过csft.confsearchd配置开启负责接受查询、处理查询和返回数据集的服务

参考地址:

1. https://yq.aliyun.com/articles/529853?spm=5176.10695662.1996646101.searchclickresult.310d2d65t0zsnK
2. https://www.cnblogs.com/GaZeon/p/5327578.html