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
嘎嘎,结果出来了。。
今天就做了这些工作。
未完待续。。
Leave a Comment
那个coreseek,如果装mmseg没在默认的目录里就要指定它的路径。
[回复]
顶
[回复]