coreseek是著名的搜索引擎,对中文支持尤其好。 官网和网上都有安装说明,但是内容老旧,处处是坑。今天搜索了好多文章,最终成功。现在把填坑过程记录一下,方便后来者。
事前准备
安装编译环境和mysql客户端
sudo apt-get install make gcc g++ automake libtool mysql-client libmysqlclient-dev libxml2-dev libexpat1-dev python-dev
网上的文章如果照抄,在ubuntu15.10上是会报错的,就是libmysqlclient-dev这个东西,网文都无一例外的写为libmysqlclient15-dev,实际上新版ubuntu上已经没有这个包了。 另外python-dev也是个坑,ubuntu默认是没有安装这个包的,如果这一步不安装上,到最后make那一步会出错,提示没找到Python.h文件
下载coreseek源码包并解包
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
安装mmseg分词程序
cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3 //这里据说不用他默认的来会出问题,就没尝试
make
sudo make install
cd ..
cd csft-4.1
安装coreseek
修改一些文件
如果不做修改,编译会出问题,本文的重点就在这里。 文档上写着安装coreseek第一步是这样,这一步的目的是生成配置文件
sh buildconf.sh
然而如果你执行了这行代码,实际上是没能生成配置文件的,大概因为编译环境版本太新了,一些老脚本会有问题 下面我们手工纠正一下
vim csft-4.1/buildconf.sh //没有vim自行安装或用其他编辑器都行
显示为
#! /bin/sh
autoheader \
&& aclocal \
&& automake --foreign \
&& autoconf
找到automake行,修改为
#! /bin/sh
autoheader \
&& aclocal \
&& automake --foreign --add-missing \
&& autoconf
保存退出 还不算完
vim configure.ac
查找这一行:
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
修改为:
AM_INIT_AUTOMAKE([-Wall foreign])
查找这一行:
AC_PROG_RANLIB
下一行追加:
AM_PROG_AR
最后还要修改源码:
vim src/sphinxexpr.cpp
查找如下代码,
T val = ExprEval ( this->m_pArg, tMatch );
并全部替换为:
T val = this->ExprEval ( this->m_pArg, tMatch );
正式安装coreseek
sh 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 --with-python
make
sudo make install
大功告成。
Ubuntu Coreseek安装配置:http://www.linuxdiyf.com/linux/9070.html
coreseek-3.2.13兼容sphinx-0.9.9的配置:http://www.linuxdiyf.com/linux/7331.html