教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 数据库 > 搜索引擎 >

coreseek-3.2.14安装sphinx加mmseg错误汇总

时间:2012-07-14 16:39来源:站长教学网 作者:ken 点击:

coreseek-3.2.14基于Sphinx 0.9.9 release开发,这个版本是不需要打中文补丁的了,安装包已经整合好了中文补丁。mysql和php的安装就略过了,主要还是介绍安装中文分词和sphinx引擎的安装和一些安装过程遇到的问题的总结,希望能给你带来帮助。

wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
cd coreseek-3.2.13
mmseg和csft都在这个目录下
cd mmseg-3.2.13/
./configure --prefix=/usr/local/mmseg
出现如下错误提示:

configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: error: cannot find input file: src/Makefile.in

使用官网的第一步yum -y install gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel升级一些系统文件,无效。

找到其站上Csft 3.2的安装说明:http://www.coreseek.cn/news/6/100/

aclocal
libtoolize --force 我运行后有一个错误,没管它。
automake --add-missing
autoconf
autoheader
make clean
./configure --prefix=/usr/local/mmseg
通过了
make
make install
安装完成后,mmseg使用的词典和配置文件,自动安装在/usr/local/mmseg/etc中


cd csft-3.2.14
./configure --prefix=/usr/local/coreseek --without-python --with-mysql --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
顺利通过
make时出错
/home/src/coreseek-3.2.14/csft-3.2.13/src/tokenizer_zhcn.h:70: undefined reference to `libiconv_open'
/home/src/coreseek-3.2.14/csft-3.2.13/src/tokenizer_zhcn.h:73: undefined reference to `libiconv'
修改src/Makefile,
搜索LIBS找到这行:
LIBS = -lm -lz -lexpat  -L/usr/local/lib -lrt  -lpthread
修改为:
LIBS = -lm -lz -lexpat -liconv -L/usr/local/lib -lrt  -lpthread
编译终于通过了,Coreseek3.2.14安装完成。

附:coreseek支持latin1,GBK,UTF-8编码的MYSQL索引,原版的sphinx只支持单字节字符集和UTF-8编码。

网上安装sphinx的已经太多了,这里把一些安装错误汇总下:站长教学网 eduyo.com

问题一

/usr/local/sphinx-0.9.9/src/sphinx.cpp:20060: undefined reference to `libiconv_open'
/usr/local/sphinx-0.9.9/src/sphinx.cpp:20078: undefined reference to `libiconv'
/usr/local/sphinx-0.9.9/src/sphinx.cpp:20084: undefined reference to `libiconv_close'
collect2: ld returned 1 exit status
make[2]: *** [indexer] Error 1
make[2]: Leaving directory `/home/jling/sphinx-0.9.9/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/jling/sphinx-0.9.9/src'
make: *** [all-recursive] Error

解决办法:打开configure文件,找到“#define USE_LIBICONV 1”,将注释去掉,并将1改成0。

问题二

error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
解决办法:

64位系统ln -s /usr/local/webserver/mysql/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib64/libmysqlclient.so.16

32位系统ln -s /usr/local/webserver/mysql/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so.16

问题三:在建立索引的时候出错

$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/indexer --all

         
这个命令是建立索引,当然数据基础是刚刚导入的example.sql的数据,如果这里出错,最大的可能是你的sphinx.conf中的数据库配置错了,你需要回去检查并修正。但是,还有可能出现sphinx必须的库文件无法找到,例如出现以下两种错误:
          /usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
          /usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
          这主要是因为你安装了一些库后,没有能够配置相应的环境变量。你可以通过建立连接的方式修正这个问题,

解决方法运行如下命令:
          ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
         
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
          这里我假设你相应的软件包安装在/usr/local/xxx 目录下,如果你不是安装在相应目录下,你就需要使用你自己的路径。如果你没有安装libiconv软件包,则需要安装下,这个安装比较简单,就不多说了。
          如果还出现类似错误,照上面的方法修正。

另外一个解决办法如下:

1.在/etc/ld.so.conf中加一行/usr/local/lib,

2.然后运行/sbin/ldconfig,文件解决,没有报错了~~

 

安装好后:

 生成和使用分词字典

mmseg -u /root/mmseg-0.7.3/data/unigram.txt

将生成unigram.txt.lib 文件

将文件拷贝到 /usr/local/sphinx/下面,重新命名为uni.lib

cp unigram.txt.lib /usr/local/sphinx/uni.lib

修改 sphinx.conf(/usr/local/sphinx/etc/sphinx.conf)配置文件

在索引中加入

charset_dictpath = /usr/local/sphinx/

charset_type = zh_cn.utf-8

然后通过

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf –all  来创建索引 all可以修改成对应的数据源名称

(如果searchd已经再运行,在searchd运行的状态下,需要添加--rotate参数来加载索引)

/usr/local/sphinx/bin/indexer --rotate --config /usr/local/sphinx/etc/sphinx.conf test1stemmed 命令来更新增量索

重建索引,成功后,开启索引监听

/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf

后面可以重新添加--stop参数后运行来停止监听。站长教学网 eduyo.com

 

定时更新下一页:

(责任编辑:ken)

TAG标签: Sphinx coreseek mmseg
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容