几种常见的基于Lucene的开源搜索解决方案对比[转]

http://blog.fulin.org/2010/11/search_solutions_compare.html

一  直接使用 Lucene  ( http://lucene.apache.org )

  1. 说明:Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作
  2. 优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。
  3. 缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search )搜索方案的可扩展性有待进一步完善

二  Solr  ( http://lucene.apache.org/solr/ )

  1. 说明:基于 Lucene 的企业级搜索的开箱即用的解决方案
  2. 优点:比较成熟的解决方案,也有很多的成功案例。Lucene 子项目,实现了大部分常见的搜索功能需求,包括 facet 搜索 (搜索结果分类过滤)等。
  3. 缺点:可定制性比 Lucene 要差,一些不常见的需求,定制的难度比直接在 Lucene 上做要大的多。性能上,由于 Solr 的建索引和搜索是同一个进程,耦合度比较高,对于性能调优有一定的影响。

三 Katta ( http://katta.sourceforge.net/ )

  1. 说明:基于 Lucene 的,支持分布式,可扩展,具有容错功能,准实时的搜索方案。
  2. 优点:开箱即用,可以与 Hadoop 配合实现分布式。具备扩展和容错机制。
  3. 缺点:只是搜索方案,建索引部分还是需要自己实现。在搜索功能上,只实现了最基本的需求。成功案例较少,项目的成熟度稍微差一些。因为需要支持分布式,对于一些复杂的查询需求,定制的难度会比较大。

四 Hadoop contrib/index ( http://svn.apache.org/repos/asf/hadoop/mapreduce/trunk/src/contrib/index/README )

  1. 说明:Map/Reduce 模式的,分布式建索引方案,可以跟 Katta 配合使用。
  2. 优点:分布式建索引,具备可扩展性。
  3. 缺点:只是建索引方案,不包括搜索实现。工作在批处理模式,对实时搜索的支持不佳。

五 LinkedIn 的开源方案 ( http://sna-projects.com/ )

  1. 说明:基于 Lucene 的一系列解决方案,包括 准实时搜索 zoie ,facet 搜索实现 bobo ,机器学习算法 decomposer ,摘要存储库 krati ,数据库模式包装 sensei 等等
  2. 优点:经过验证的解决方案,支持分布式,可扩展,丰富的功能实现
  3. 缺点:与 linkedin 公司的联系太紧密,可定制性比较差

六 ElasticSearch  ( http://www.elasticsearch.com/ )

  1. 说明:基于 Lucene 的,分布式,云端,提供 rest 接口的搜索解决方案
  2. 优点:开箱即用,分布式,rest 接口,支持云端调用
  3. 缺点:一个新的项目,没有经过很多的验证。(只有一个人在开发?)分片的数目不能动态调整,只能在初始化索引的时候指定(跟 HBase 不一样的地方)

七 Lucandra ( https://github.com/tjake/Lucandra )

  1. 说明:基于 Lucene,索引存在 cassandra 数据库中
  2. 优点:参考 cassandra 的优点
  3. 缺点:参考 cassandra 的缺点。另外,这只是一个 demo,没有经过大量验证

八 HBasene ( https://github.com/akkumar/hbasene )

  1. 说明:基于 Lucene,索引存在 HBase 数据库中
  2. 优点:参考 HBase 的优点
  3. 缺点:参考 HBase 的缺点。另外,在实现中,lucene terms 是存成行,但每个 term 对应的 posting lists 是以列的方式存储的。随着单个 term 的 posting lists 的增大,查询时的速度受到的影响会非常大

转载于:https://www.cnblogs.com/ajian005/archive/2011/06/01/2753824.html

几种常见的基于Lucene的开源搜索解决方案对比相关推荐

  1. java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器

    http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...

  2. 一种基于Lucene的实时搜索方案|淘宝技术部

    背景 阿里集团各大业务快速发展过程中都对搜索服务很多刚性的需要,而这样的搜索需求有着非常明显的特征:快速支持.低成本.实时性和稳定性. 快速支持: 业务需求急迫.需要一周甚至几天内完成索引服务搭建.测 ...

  3. 基于 Lucene 的桌面文件搜索

    开源2010年,自己在学习 Lucene 时开发的一款桌面文件搜索工具,这么多年过去了,代码一直静静存放在自己的硬盘上,与其让其沉睡,不如分享出来. 这款工具带有明显的模仿 Everything 的痕 ...

  4. 计算机辅助设计与图像学学报 改后发表,几种常见图像二值化方法的结果对比与分析...

    曾洁 摘 要:在图像处理中,图像二值化可以说是非常关键的一步.图像二值化能够帮助我们滤除掉原始图像中由于光照不均等因素造成的影响,此外,还能够是图像的数据量变小,有利于我们的后续操作.目前,图像二值化 ...

  5. constellio——基于solr的开源搜索引擎系统源码研究(五)

    插件工厂类PluginFactory.java /*** Constellio, Open Source Enterprise Search* Copyright (C) 2010 DocuLibre ...

  6. 【转载保存】基于Lucene的近实时搜索引擎优化总结

    一.搜索优化: 在工程领域,越是看起来"简单.确定"的问题,越是难以解决.近实时搜索引擎需要解决的问题只有一个:性能!它包含快速索引,快速搜索,以及索引到搜索的快速生效. 以下为百 ...

  7. 20款开源搜索引擎系统

    20款开源搜索引擎系统 一些开源搜索引擎系统介绍,包含开源Web搜索引擎和开源桌面搜索引擎. Sphider Sphider是一个轻量级,采用PHP开发的web spider和搜索引擎,使用mysql ...

  8. 如何实施好基于MOSS的企业搜索项目(上)

    文章目的:希望通过此文,能让读者了解搜索的本质和基于MOSS的企业搜索方案,在此基础上站在项目管理角度掌 握如何实施好这类方案的项目的关键点,确保企业搜索项目成功交付.由于文章长度限制,本文分上下两部 ...

  9. 最新开源LiDAR数据集LSOOD:四种常见的室外物体分类

    点云PCL免费知识星球,点云论文速读. 标题:最新开源LiDAR数据集LSOOD:四种常见的室外物体分类 作者:Y Tian 来源:https://github.com/Tian-Yifei/LSOO ...

  10. 开源文档系统php,推荐几种常见的PHP开源文档管理系统

    PHP语言研究是一种基于嵌入式系统的开放源码语言,没有几个基于PHP的开放源码文档管理系统,今天爱站技术频道小编向您推荐几种常见的PHP开源文档管理系统,希望对你学习有帮助! 简单的试用心得如下: 安 ...

最新文章

  1. Apache JMeter2.13 实战
  2. hdu 3664 1~n排列(aii ) 为k个数
  3. asp.net 页面中点击按钮后无反应的解决方法
  4. C++ Map传递参数
  5. 手把手配置Linux透明防火墙
  6. 手机的次世代竞争年代
  7. 微软Office 365正式上架Mac App Store
  8. 【AI视野·今日Robot 机器人论文速览 第三期】Tue, 8 Jun 2021
  9. FreeTextBox 3.1.6 的实践总结和几个问题
  10. 美团“共享单车变球场”项目落地四川阿坝
  11. js调用本地js文件(亲测)
  12. 网络口碑Market,生来“苟且”?
  13. 形式验证——学习笔记
  14. C语言数字图像处理进阶---12光照特效滤镜
  15. 光纤连接器的连接方法
  16. Origin | 一个X对应多个Y的折线图
  17. java web QQ(二)
  18. android全景设置高度,Android全景SDK | 百度地图API SDK
  19. 百度、字节跳动们,能否撬动在线办公市场?
  20. 【ZZULIOJ】1091: 童年生活二三事(多实例测试)

热门文章

  1. python 边缘计算_OpenEdge首页、文档和下载 - 边缘计算平台 - OSCHINA - 中文开源技术交流社区...
  2. Linux 软件安装目录详解
  3. ajax 保存xmldoc对象,AJAX XML 实例
  4. 计算机原理实验的35h,微机原理及接口技术习题解答与实验指导
  5. 7.4读写锁(ReadWriteLock)
  6. SpringMCV结构
  7. 解决 IDEA 无法找到 java.util.Date 的问题
  8. 点击选中框 批量删除
  9. bzoj 4827 礼物
  10. QA面试题:之一(中英文题目、难度:简单)