Sphinx的主要功能包括:
- 高速建立索引(可达10 MB/秒)
- (本人初次创建索引的速度:collected 37594 docs, 104.0 MB
sorted 19.9 Mhits, 100.0% done
total 37594 docs, 103965976 bytes
total 45.268 sec, 2296662.25 bytes/sec, 830.47 docs/sec)
- (本人初次创建索引的速度:collected 37594 docs, 104.0 MB
- 高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)(实现一些中小型的网站搜索,已经足够用的了)
- 高扩展性(在单一CPU上,实测最高可对100GB的文本建立索引,单一索引可包括100M文件 )
- 支持分布式检索
- 支持基于短语和基于统计的复合结果排序机制
- 支持任意数量的文件字段(数值属性或全文检索属性)
- 支持不同的搜索模式( “完全匹配” , “短语匹配”和“任一匹配” )
- 支持作为Mysql的存储引擎
从功能上看,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与创建索引词典吧。

