msgbartop
better late than never
msgbarbottom

Aug 20 coreseek3.1安装

Coreseek 全文检索服务器2.0 是在Sphinx基础上开发的全文检索软件,按照GPLv2协议发行。

上面是手册上的话,说到底,coreseek就是支持中文分词的sphinx吧,= =个人理解。

= =今天折腾一天这东西,也只能才算是安装好。

先说下环境

centos5.2

php5.2.6+mysql5.0.67+nginx/0.7.14

安装目录分别是/usr/local/php,/usr/local/mysql,/usr/local/nginx

下面说说安装coreseek

手册:sphinx_doc_zhcn_0.9.pdf

使用的是源码安装

下载安装mmseg

再抄一段手册的话介绍一下mmseg吧

LibMMSeg 是Coreseek.com为 Sphinx 全文搜索引擎设计的中文分词软件包,其在GPL协议下发行的中文分词法,采用Chih-Hao Tsai的MMSEG算法。

LibMMSeg 采用C++开发,同时支持Linux平台和Windows平台,切分速度大约在300K/s(PM-1.2G)。

[root@localhost ~]#cd /opt

[root@localhost opt]#wget http://www.coreseek.cn/uploads/csft/3.1/Source/mmseg-3.1.tar.gz

[root@localhost opt]# tar zxvf mmseg-3.1.tar.gz

[root@localhost opt]#cd mmseg-3.1

[root@localhost mmseg-3.1]#./configure –with-prefix=/usr/local/mmseg

[root@localhost mmseg-3.1]#make && make install && make clean

[root@localhost mmseg-3.1]#cd ../

看别人的安装过程有些出问题了,还好我的没出问题。嘎嘎

下载安装Coreseek Fulltext Server(csft)

因为木用过python,所以木有考虑用python做数据源,自然也木有安装。

[root@localhost opt]#wget http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz

[root@localhost opt]# tar zxvf csft-3.1.tar.gz

[root@localhost opt]# cd csft-3.1

[root@localhost csft-3.1]#./configure –prefix=/usr/local/coreseek –with-mysql –with-mmseg=/usr/local/mmseg –with-mmseg-includes=/usr/local/mmseg/include/mmseg –with-mmseg-libs=/usr/local/mmseg/lib/

这个是我的配置,在别人那看到的是木有–with-mmseg=/usr/local/mmseg的,但是我的会出问题,后来加了这句就好了,不要问为什么,因为我也不知道。

接下来的编译可出了不少问题,我是在coreseek.cn社区里看到有个版主的配置,跟着做了,结果就木问题了。不过他有安装python。嘎嘎。

原帖地址:http://www.coreseek.cn/forum/index.php?action=vthread&forum=2&topic=152

=========================华丽的分割线=============================

我给发我的安装过程,下面的东西是必须安装的,希望对你有帮助。
yum -y install glibc glibc-devel glib2 glib2-devel
yum install -y expat expat-devel
yum install -y python-devel MySQL-python

安装mmseg:
tar zxf mmseg3_0b3.tar.gz
cd mmseg3_0b3
./configure
make && make install && make clean
cd ../

安装libiconv
tar zxf libiconv-1.12.tar.gz
cd libiconv-1.12
./configure –prefix=/usr/local
make && make install && make clean
echo /usr/local/lib/ >> /etc/ld.so.conf
ldconfig
cd ../

安装csft
tar zxvf csft3.1b3.tar.gz
cd csft3.1b3
./configure –prefix=/usr/local/coreseek –with-mysql=/usr/local/mysql –with-mmseg-includes=/usr/local/include/mmseg –with-mmseg-libs=/usr/local/lib –with-python –enable-id64 –with-iconv

vi Makefile
LIBS = -lm -lexpat -L/usr/local/lib
里面去,变成这样:
LIBS = -lm -lexpat -L/usr/local/lib -liconv
vi src/Makefile
LIBS = -lm -lexpat -L/usr/local/lib
里面去,变成这样:
LIBS = -lm -lexpat -L/usr/local/lib -liconv

make
make install
make clean

===============================分割完成=========================
照着这位版主的方法,就算是装好鸟。
如果中途编译出现错误,要make clean一下再make,嘎嘎,不然好不了的。
接下来就照着手册的第2.5章来写配置文件了
$ cd /usr/local/coreseek/etc
$ cp sphinx.conf.dist sphinx.conf
$ vi sphinx.conf
话说这里的一些mysql数据要自己填的,其实俺做的这步的时候,数据库还是空的。嘎嘎。
先给coreseek也可以说是sphinx创建个专门的帐号吧。
进入mysql,这里用的是root帐号登录的
mysql>grant all on test.* to sphinx@localhost identified by sphinx
用户名跟密码都设成sphinx了。
然后退出mysql
$ mysql -usphinx -p test < /usr/local/sphinx/etc/example.sql
回车后填入密码就导入好了。
当然这个是理想状态,嘎嘎,俺就碰到了好些问题,比如can’t create table,依稀记得错误信息是这个,= =,最后发现是权限问题,后来是神仙帮忙的,这里不得不提到我的师傅神仙了,他好厉害= =,非常厉害,相当厉害。。。
# cd /usr/local/mysql/var   这个就是存放数据库文件的地方,不知道在哪里的话,可以看my.cnf里的datadir。
# chown -R 755 mysql.mysql test 这个test就是存放test数据库的地方了。
数据导进去,再回到配置文件sphinx.conf
先是数据源
sql_host                                = localhost
sql_user                                = sphinx
sql_pass                               = sphinx
sql_db                                  = test
sql_port                                = 3306
上面要改成自己的
sql_query_pre                  = SET NAMES utf8
这句前面的注释去掉
charset_type            = utf-8
这里原来是sbcs的,改成utf-8,说中文的可以改成zh_cn.utf-8,我试了一下不行。
# ‘utf-8′ default value is
charset_table          = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
charset_table前的注释去掉。
例子中的配置文件大概就是这样的吧
下面建立索引
#cd /usr/local/coreseek/etc
#/usr/local/coreseek/bin/indexer –config /usr/local/coreseek/etc/sphinx.conf –all
哈哈,又出错了。。
/usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
在网上看到解决方法
在 /etc/ld.so.conf文件中加入您 MySQL 相关的库文件所在文件夹:
echo “/usr/local/mysql/lib/mysql” >>/etc/ld.so.conf
然后运行 ldconfig 命令即可。
原因是找不着那个啥文件,= =。我是直接用vi打开/etc/ld.so.conf在最后加上一句/usr/local/mysql5/lib/mysql,其实是一样的,不过我对linux其实不大熟,所以就当是锻炼了。。= =
那句命令要记得运行,不然还是会出错的。
这下好了吧
然后开守护进程
[root@localhost etc]# #/usr/local/coreseek/bin/searchd
又出问题了。。
FATAL: no readable config file (looked in /usr/local/coreseek/etc/csft.conf, ./csft.conf).
真讨厌啊,还要指定配置文件的
[root@localhost etc]# ../bin/searchd –config /usr/local/coreseek/etc/sphinx.conf
运行api自带的test.php
[root@localhost etc]# cd cd /opt/csft-3.1/api
[root@localhost api]# /usr/local/php/bin/php test.php test
Query ‘test ‘ retrieved 3 of 3 matches in 0.000 sec.
Query stats:
‘test’ found 10 times in 6 documents
Matches:
1. doc_id=1, weight=101, group_id=1, date_added=2009-08-20 13:28:32
2. doc_id=2, weight=101, group_id=1, date_added=2009-08-20 13:28:32
3. doc_id=4, weight=1, group_id=2, date_added=2009-08-20 13:28:32
嘎嘎,结果出来了。。
今天就做了这些工作。
未完待续。。


Reader's Comments

  1. |

    那个coreseek,如果装mmseg没在默认的目录里就要指定它的路径。

    [回复]

  2. |

    [回复]



Leave a Comment




*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word