centso5下使用coreseek(sphinx)建立搜索引擎

centso5下使用coreseek(sphinx)建立搜索引擎

1.安装coreseek

CentOS的测试环境安装
参考地址:http://www.coreseek.cn/products/products-install/install_on_bsd_linux/CentOS-5-5/

32位版本:
coreseek安装需要预装的软件:yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

64位版本:
coreseek安装需要预装的软件:yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

CoreSeek安装:
参考地址:
http://www.coreseek.cn/products-install/install_on_bsd_linux/

##下载coreseek:coreseek 3.2.14:点击下载、coreseek 4.0.1:点击下载
$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
$ 或者 http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.0.1-beta.tar.gz
$ tar xzvf coreseek-3.2.14.tar.gz 或者 coreseek-4.0.1-beta.tar.gz
$ cd coreseek-3.2.14 或者 coreseek-4.0.1-beta

##前提:需提前安装操作系统基础开发库及mysql依赖库以支持mysql数据源和xml数据源
##安装mmseg
$ cd mmseg-3.2.14
$ ./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..

一般情况这都不会出现什么问题。

##安装coreseek
$ cd csft-3.2.14 或者 cd csft-4.0.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 ..

---------------------------------------------------------------------------------------------------------------------------------------------------
注:
问题1:在sh buildconf.sh是可能会出现:Autoconf version 2.62 or higher is required的错误,这是centos的Autoconf版本太低导致的,手动安装一下Autoconf即可
centos下升级autoconf
#whereis autoconf #查看autoconf的路径
#rpm -qf /usr/bin/autoconf #查看autoconf的版本
#rpm -e --nodeps autoconf-2.59-12 #卸载原来版本
#tar -zxf autoconf-2.65.tar.gz
#cd autoconf-2.65
#./configure --prefix=/usr
#make && make install
#/usr/bin/autoconf -V #查看是否安装成功

问题2:出现 undefined reference to libiconv_open的错误,
sphinx依赖于libiconv实现编码转换。所以在机器上提前要安装libiconv库。然后有configure完成后,使用命令 vim src/Makefile(在csft目录里),
找到 LIBS = -lm -lexpat -L/usr/local/lib 改为LIBS = -lm -lexpat -liconv -L/usr/local/lib重新make就可以了。网上有其它人将宏#define USE_LIBICONV改为0,
表示不使用libiconv。虽然可以解决问题,但不推荐此方法。
安装liconv:
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
#tar -zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
# ./configure --prefix=/usr/local/libiconv
# make
# make install

编辑:
./src/MakeFile文件

LIBS = -lm -lexpat -L/usr/local/lib
改成
LIBS = -lm -lexpat -liconv -L/usr/local/lib 


使用命令”bin/indexer”创建索引时,出现”error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory”的问题

在出现这个问题时,先看是否在 /usr/lib下有libiconv.so.2文件或此文件的软(硬)连接。没有的话就做一下连接(前提是安装了libiconv)。然后执行如下的命令:
echo   /usr/lib >> /etc/ld.so.conf 接着执行ldconfig。这时就没有问题了。
----------------------------------------------------------------------------------------------------------------------------------------------------


##测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)
$ 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 网络搜索

你可能感兴趣的:(centso5下使用coreseek(sphinx)建立搜索引擎)