ubuntu 12.04安装coreseek 4.1beta

Le 四 23 一月 2014 Par HAO  | Catégorie : coreseek

Tags : coreseek / Ubuntu /

 

coreseek安装需要预装的软件: shell>apt-get install make gcc g++ automake libtool m4 autoconf mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev

切换到root用户,确保拥有完整的权限来安装软件

$ su root

$ cd coreseek-4.1-beta

中文测试环境检查:

$ locale

以下为核心项,locale为zh_CN.UTF-8,就可以正常显示和输入中文;

如果不能正常显示中文,则后面的中文测试部分无法正常进行,但不会影响coreseek的实际功能;

LANG=zh_CN.UTF-8 LC_ALL="zh_CN.UTF-8"

确保可以正常显示,否则请检查当前环境的locale配置,以及当前环境或者客户端已设置好支持UTF-8中文字符显示

$ cat testpack/var/test/test.xml

安装coreseek开发的mmseg,为coreseek提供中文分词功能

$ cd mmseg-3.2.14

ubuntu环境下,需要使用ACLOCAL_FLAGS="-I /usr/share/aclocal" ./bootstrap

$ ./bootstrap $ ./configure --prefix=/usr/local/mmseg3 $ make && make install

如果提示libtool: unrecognized option `--tag=CC' ,请查看libtool问题解决方案

安装完成后,mmseg使用的词典和配置文件,将自动安装到/usr/local/mmseg3/etc中

中文分词测试,显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置

$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc src/t1.txt 中文/x 分/x 词/x 测试/x 中国人/x 上海市/x Word Splite took: 1 ms.

安装coreseek:

$ cd csft-/usr/local/coreseek/bin/indexer -c etc/csft.conf --all --rotate

执行configure,进行编译配置:

$ sh buildconf.sh $ ./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

$ make && make install

如果编译出错,出现类似于: make[2]: [sphinxexpr.o] Error 1 make[2]: Leaving directory /home/mac/Downloads/coreseek-4.1-beta/csft-4.1/src' make[1]: *** [all] Error 2 make[1]: Leaving directory/home/mac/Downloads/coreseek-4.1-beta/csft-4.1/src' make: [all-recursive] Error 1 的问题,需要打一个补丁:

一个有用的链接:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667378,是关于coreseek上游的sphinx的同样问题的,看了一下了解似乎是gcc 4.7的C++作用域的问题,上面的debian bugs里面提供了一个patch,看了下patch的内容,也对自己本地的coreseek的制作了同样的补丁,压缩包发布如下,使用时注意版本:sphinxexpr.cpp.patch.zip

root@china:/home/china/Downloads/coreseek-4.1-beta/csft-4.1# patch -p1 < /home/china/Downloads/sphinxexpr.cpp-csft-4.1-beta.patch can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was:


--- /home/china/Downloads/coreseek-4.1-beta/csft-4.1/src/sphinxexpr.cpp 2011-10-07 20:08:58.000000000 +0800
--------------------------
File to patch:

在file to patch:后输入sphinxexpr.cpp文件的位置 我当时输入的是 /home/china/Downloads/coreseek-4.1-beta/csft-4.1/src/sphinxexpr.cpp

补丁打后就可以直接编译通过了

配置测试,测试是否可以正确运行

$ /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx-min.conf.dist

以下为正常测试时的提示信息:

Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)] Copyright (c) 2007-2011, Beijing Choice Software Technologies Inc (http://www.coreseek.com)

ERROR: nothing to do.

至此,coreseek基础环境正常安装

$ cd testpack

$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all

$ /usr/local/coreseek/bin/search -c etc/csft.conf -a 服务

以下为正常测试搜索关键词"服务"的数据

Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)] Copyright (c) 2007-2011, Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'... index 'xml': query '服务 ': returned 1 matches of 1 total in 0.015 sec

displaying matches: 1. document=3, weight=1, published=Wed Mar 31 21:01:00 2010, author_id=2

words: 1. '服务': 1 documents, 1 hits

$ /usr/local/coreseek/bin/searchd -c etc/csft.conf

以下为正常开启搜索服务时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)] Copyright (c) 2007-2010, Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'...
listening on all interfaces, port=9312

如要停止搜索服务,/usr/local/coreseek/bin/searchd -c etc/csft.conf --stop

如要已启动服务,要更新索引,/usr/local/coreseek/bin/indexer -c etc/csft.conf --all --rotate

然后,请参考csft-4.1下api目录中的相关文件,使用PHP、Python、Ruby、Java来测试搜索服务;也可以前往< a href="/products-install/step_by_step/">搜索服务建立三步曲,查看第三步使用PHP测试。

文章参考了并自己测试通过:http://blog.csdn.net/liangpz521/article/details/8795286和http://blog.csdn.net/andybegin/article/details/8724506 感谢原作者

 

Commentaires !