原文地址: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的开源搜索解决方案对比,大家参考一下。
基于Lucene的搜索引擎为特定领域,例如新闻检索,提供了一种可行的解决方案。通过对Lucene API的深入分析与应用,并结合开源网络爬虫技术,可以构建出在特定领域性能优越的搜索引擎。这种搜索引擎的开发和应用,不仅...
其中内容均为前段时间研究开源搜索引擎时搜集参考的资料,非常齐全包含的内容有: Computing PageRank Using Hadoop.ppt Google的秘密PageRank彻底解说中文版.doc JAVA_Lucene_in_Action教程完整版.doc Java开源搜索...
总结,LUCENE作为一个强大的全文搜索库,为开发者提供了构建搜索引擎的全面解决方案。通过理解并掌握其核心原理,如索引构建、查询解析、结果排序等,我们可以设计出高性能、可扩展的搜索引擎系统,满足多样化的信息...
总的来说,基于Lucene的中型搜索引擎(C#)结合了开源的全文检索库和C#语言的优势,为企业或个人开发自定义搜索引擎提供了一种高效且灵活的解决方案。通过深入理解Lucene的原理和ShootSearch的优化策略,开发者可以...
**基于Lucene的搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java编写的一个高性能、可扩展的信息检索库,为开发者提供了构建搜索功能的基础框架。这个课程设计创建了一个简单的...
### 开源搜索框架Lucene介绍 #### 一、Lucene简介 Lucene是一款非常优秀且成熟的开源全文索引检索工具包,它完全采用Java语言编写,由Doug Cutting于1999年创建,并于2001年10月捐赠给了Apache基金会,成为Apache...
《基于Lucene的小型搜索引擎构建详解》 在信息爆炸的时代,如何快速、准确地找到所需信息成为了一项挑战。搜索引擎作为解决这一问题的关键工具,其技术实现也引起了广泛关注。本篇将详细介绍一个基于Apache Lucene...
本项目“基于Lucene的桌面搜索引擎”正是针对这一需求,利用开源全文搜索引擎库Lucene实现了一个桌面级别的搜索解决方案。 **一、Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是Java语言编写的...
而Lucene的索引机制则更加灵活和高效,它基于项的静态存储,能够实现基于项的高效搜索,从而大幅提高了搜索速度和资源利用率。 ### 结论 综上所述,Lucene与关系型数据库各有千秋,分别在全文检索和事务处理两个...
### 一种基于Lucene检索引擎的全文数据库的研究与实现 #### 1. 引言 ...综上所述,基于Lucene的全文数据库提供了一种高效、灵活且易于实施的解决方案,对于提高信息检索的准确性和效率具有重要意义。
综上所述,基于Lucene构建的Web站内搜索引擎,不仅体现了开源软件在信息检索领域的强大能力,也为各行业提供了定制化信息管理解决方案的可能性。通过深入理解Lucene的工作原理,开发者可以充分利用其丰富的功能,...
它提供了包括分词、索引、搜索、评分等在内的全套解决方案。Lucene的核心功能包括文档分析、索引创建、查询解析和结果排名等,广泛应用于各种信息检索系统中。 ### 2. Regain特性 Regain搜索引擎有以下几个主要...