RSS
热门关键字:  php  lighttpd  找回密码  密码找回  client
当前位置 :| 主页>技术资料>Httpd server>

sphinx+php全文搜索

来源: 作者: 时间:2008-08-11 Tag:Sphinx   php   点击:

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)
  • 高性能搜索(在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与创建索引词典吧。


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册