读了robbin写的Rails的sphinx全文搜索实现,于是想尝试使用php来玩玩看。
讲到sphinx,肯定的介绍一下sphinx的优势了:
Sphinx的主要功能包括:
从功能上看,sphinx很是适合我来使用,呵呵。
开始从实践中体验sphinx的优势吧,ok,安装
(我在mac os x 10.4与redhat 5上都有安装过,不过,每次都不是很顺利,而且遇到的问题都不尽相同,还好最后都找到解决的办法。)
这里介绍在redhat 5下编译的步骤:
1。下载需要的软件包 :
从这里http://www.sphinxsearch.com/downloads.html下载Sphinx 0.9.8 rc2版:
http://www.sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz
但是,为了使用libmmseg支持中文分词,还需要下载两个补丁:
http://www.coreseek.com/uploads/sources/sphinx-0.98rc2.zhcn-support.patch
http://www.coreseek.com/uploads/sources/fix-crash-in-excerpts.patch
注意:补丁是针对特定的Sphinx版本的,若版本不匹配会更麻烦。所以最简单的方法是直接使用李沫南已经打好补丁的Coreseek包,和自己打补丁的效果是一样的:
http://www.coreseek.com/uploads/sources/coreseek_fulltext_2.5.tar.gz
下载libmmseg:
http://www.coreseek.com/uploads/sources/mmseg-0.7.3.tar.gz
2。因为sphinx的编译需要--with-mmseg的支持,所以首先编译libmmseg:
tar zxvf mmseg-0.7.3.tar.gz
cd mmseg-0.7.3
./configure --prefix=/home/someone/mmseg
make
make install
然后:
tar zxvf sphinx-0.9.8-rc2.tar.gz
cd sphinx-0.9.8-rc2
为sphinx打补丁:
patch -p1 < ../sphinx-0.98rc2.zhcn-support.patch
patch -p1 < ../fix-crash-in-excerpts.patch
./configure --prefix=/home/someone/sphinx --with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib/ --with-mmseg-includes=/home/someone/mmseg/include/mmseg/ --with-mmseg-libs=/home/someone/mmseg/lib/
make & make install
(这里是我的参数配置,--with-mysql --with-libmmseg是必须的,编译中遇到很多问题,但是,大部分都是由于mysql的版本与libmysqlclient.so文件导致的,所以要注意下。)
ok,所需的软件包安装完毕了,开始修改配置文件sphinx.conf与创建索引词典吧。