原文地址:http://hi.baidu.com/savagert/blog/item/5dfe39138534cac0f7039e5c.html
一 直接使用 Lucene ( http://lucene.apache.org )
- 说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作
- 优点:成熟的解决方案,有很多的成功案例。apache
顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持
10亿+ 量级的搜索。
- 缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene
Near
Real Time search)搜索方案的可扩展性有待进一步完善
二 Solr ( http://lucene.apache.org/solr/ )
- 说明:基于 Lucene 的企业级搜索的开箱即用的解决方案
- 优点:比较成熟的解决方案,也有很多的成功案例。Lucene 子项目,实现了大部分常见的搜索功能需求,包括 facet
搜索(搜索结果分类过滤)等。
- 缺点:可定制性比 Lucene 要差,一些不常见的需求,定制的难度比直接在 Lucene 上做要大的多。性能上,由于 Solr
的建索引和搜索是同一个进程,耦合度比较高,对于性能调优有一定的影响。
三 Katta ( http://katta.sourceforge.net/ )
- 说明:基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。
- 优点:开箱即用,可以与 Hadoop 配合实现分布式。具备扩展和容错机制。
- 缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。因为需要支持分布式,对于一些复杂的查询需求,定制的难度会比较大。
四 Hadoop contrib/index ( http://svn.apache.org/repos/asf/hadoop/mapreduce/trunk/src/contrib/index/README
)
- 说明:Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。
- 优点:分布式建索引,具备可扩展性。
- 缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。
五 LinkedIn 的开源方案 ( http://sna-projects.com/ )
- 说明:基于 Lucene 的一系列解决方案,包括 准实时搜索 zoie ,facet 搜索实现 bobo ,机器学习算法 decomposer ,摘要存储库
krati ,数据库模式包装 sensei 等等
- 优点:经过验证的解决方案,支持分布式,可扩展,丰富的功能实现
- 缺点:与 linkedin 公司的联系太紧密,可定制性比较差
六 ElasticSearch ( http://www.elasticsearch.com/ )
- 说明:基于 Lucene 的,分布式,云端,提供 rest 接口的搜索解决方案
- 优点:开箱即用,分布式,rest 接口,支持云端调用
- 缺点:一个新的项目,没有经过很多的验证。(只有一个人在开发?)分片的数目不能动态调整,只能在初始化索引的时候指定(跟 HBase
不一样的地方)
七 Lucandra ( https://github.com/tjake/Lucandra )
- 说明:基于 Lucene,索引存在 cassandra 数据库中
- 优点:参考 cassandra 的优点
- 缺点:参考 cassandra 的缺点。另外,这只是一个 demo,没有经过大量验证
八 HBasene ( https://github.com/akkumar/hbasene )
- 说明:基于 Lucene,索引存在 HBase 数据库中
- 优点:参考 HBase 的优点
- 缺点:参考 HBase 的缺点。另外,在实现中,lucene terms 是存成行,但每个 term 对应的 posting lists
是以列的方式存储的。随着单个 term 的 posting lists 的增大,查询时的速度受到的影响会非常大
分享到:
相关推荐
几种常见的基于Lucene的开源搜索解决方案对比,大家参考一下。
其中内容均为前段时间研究开源搜索引擎时搜集参考的资料,非常齐全包含的内容有: Computing PageRank Using Hadoop.ppt Google的秘密PageRank彻底解说中文版.doc JAVA_Lucene_in_Action教程完整版.doc Java开源搜索...
基于Lucene的搜索引擎的研究与应用基于Lucene的搜索引擎的研究与应用
我的毕业论文基于开源LUCENE的新闻搜索引擎的实现
ElasticSearch是一个基于ApacheLucene构建的开源搜索服务器。它提供了一个可扩展的搜索解决方案,内置支持近实时搜索和多租户。 《ElasticSearch 可扩展的开源弹性搜索解决方案》将教你如何构建一个快速、灵活、可...
一种基于Lucene检索引擎的全文数据库的研究与实现一种基于Lucene检索引擎的全文数据库的研究与实现一种基于Lucene检索引擎的全文数据库的研究与实现
基于Lucene的一个财经类网页搜索引擎,对于Lucene爱好者与新手来说,是个很不错的东东哦,呵呵。
毕业设计:基于lucene的桌面搜索引擎
基于Lucene.Net垂直搜索引擎完全开源版.rar
基于LUCENE的搜索引擎的设计与实现源代码..
基于lucene的搜索引擎regain安装版
Lueene是一个强大的全文索引引擎工具包,应用它可以快速地开发一个搜索引擎。介绍了基于英特 网的中文搜索引擎的系统结构,Lucene的索引和搜索,并且设计...结果表明,基于Lucene的搜索引擎在索引和查找上的效率很高。
基于Lucene的搜索策略研究
Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。 2001年10月贡献给APACHE,成为APACHE基金的一个子项目。 开源,可扩展能力强,有各种语言版本,适合各种平台,
垂直搜索引擎完全开源版 c#开发基于Lucene.net 1.前台结合Lucene的搜索引擎功能,使得数据搜索更快; 2.新增加采集功能,采集时图片下载,flash下载功能,默认配置的是南海网分类信息的采集规则; 3.该代码简洁,...
这是基于lucene搜索引擎的java源码,里面数据库,包括建立索引,增量索引一应俱全,希望对大家有作用。
Lucene与关系型数据库对比,很不错。。。。。。