您的位置:首页 > 其它

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

2012-09-05 22:12 429 查看
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 网络搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: