Sphinx比lucene的搜索引擎


  


Sphinx是一个俄国人开发的搜索引擎,

Sphinx建索引速度是最快的,比Lucene快9倍以上。因此,Sphinx非常适合做准实时搜索引擎。 

[亿级数据的高并发通用搜索引擎架构设计]http://hi.baidu.com/zhizhesky/blog/item/0fae4036f5db8dd2a2cc2b4f.html

它的主要特点是: 

一、性能非常出色 
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。 

二、和数据库集成性很好 
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。 

三、可以做MySQL的全文检索 
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了: 

select * from xxxx where query='test;sort=attr_asc:group_id' AND ....; 

很棒吧。 


四、RoR支持也很棒 
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。 

Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,现在也有插件支持中文的了。

他和Lucene 的比较:

Lucene作为一个全文检索引擎,其具有如下突出的优点: 
  (1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 
  (2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。 
  (3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。 
  (4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。 
  (5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询、分组查询等等。 

MG4J 是另一个搜索engine 。与Lucene 主要区别是,它提供了cluster 功能,具有更OO的设计方式。 
  MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码技术。 


Sphinx支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒) 
高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果) 
高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录) 
支持分布式检索 
支持基于短语和基于统计的复合结果排序机制 
支持任意数量的文件字段(数值属性或全文检索属性) 
支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”) 
支持作为Mysql的存储引擎

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值