https://blog.csdn.net/weixin_44318830/article/details/109166004

简介

Lucene

        Lucene是 apache 软件基金会某个项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。顺便提一下,Lucene最初是由Doug Cutting开发的,没错,就是那个创造了大数据Hadoop的那个男人。

Elasticsearch

        Elasticsearch是一个基于Apache Lucene 的开源实时分布式搜索和分析引擎。它让用前所未有的速度处理大数据成为可能。

它用于全文搜索、结构化搜索、分析以及将这三者混合使用,下面列出一些典型的使用案例:

  • GitHub 使用 Elasticsearch 搜索 20TB 的数据,包含 13亿 的文件 和 1300 亿行的代码。
  • 德国 SoundCloud 使用 Elasticsearch 来为 1.8 亿 用户提供即时精准的音乐搜索服务。
  • Sony 公司使用 elasticsearch 作为信息搜索引擎。
  • 维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。
  • 英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。

类似的使用案例特别多,最主要的是,Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据 。

无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

Elasticsearch就是通过使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏Lucene的复杂性,从而让全文搜索变得简单

Solr

        Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。Solr通过使用类似REST的HTTP API,这就确保你能从几乎任何编程语言来使用solr。

        其主要功能包括全文检索,命中标示,分面搜索,动态聚类,数据库集成,以及富文本(如Word,PDF)的处理。Solr是高度可拓展的,并提供了分布式搜索和索引复制。Solr可以和Hadoop一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术。

        Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据,是最流行的企业级搜索引擎。

区别和联系

        首先说明三者之间的一个联系:

        solr 和 elasticsearch 都是基于 Lucene 实现的

Solr 和 ElasticSearch 比较:

Solr利用 Zookeeper 进行分布式管理,支持更多格式的数据(HTML/PDF/CSV) ,官方提供的功能更多在传统的搜索应用中表现好于 ES,但实时搜索效率低。

ES自身带有分布式协调管理功能,但仅支持 json 文件格式,本身更注重于核心功能,高级功能多有第三方插件提供,在处理实时搜索应用时效明显高于 Solr。

效率对比



结论

        Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。具体选择哪一项技术,还需要根据不同的场景来进行结合选择。

Lucene,Solr,Elasticsearch之间的区别和联系相关推荐

  1. 科普向 | Lucene,Solr,Elasticsearch之间的区别和联系

    最近有幸研究到了这块领域的内容,而我本人也对于这块非常的感兴趣,所以打算写一篇文章记录一下- 简介 Lucene Lucene是 apache 软件基金会某个项目组的一个子项目,是一个开放源代码的全文 ...

  2. 公司技术分享-全文技术分享Lucene VS ElasticSearch VS Solr

    全文检索 前言: 目前,我们最常使用的是关系型数据库进行数据的存储,数据库中的搜索很容易实现,通常都是使用sql语句进行 查询,而且能很快的得到查询结果.模型图如下: 但随着业务的复杂性,原有的关系型 ...

  3. 全文搜索!收藏这篇Solr ElasticSearch 长文就可以搞定

    转载自  全文搜索!收藏这篇Solr ElasticSearch 长文就可以搞定 摘自:JaJian`博кē Java后端技术编者说:文章从浅到深,描述了什么是全文搜索,为什么要使用全文搜索,Solr ...

  4. lucene和Elasticsearch

    lucene和Elasticsearch 一.全文检索 1.什么是全文检索 1.1 数据分类 1.2 什么是全文检索 二.lucene 2.1 如何使用lucene 2.2 索引和搜索流程图 2.3 ...

  5. Lucene / Solr 开发经验

    Lucene / Solr 开发经验 http://clayz.iteye.com/blog/240357 2008-09-10 Lucene / Solr 开发经验 博客分类:Framework S ...

  6. echo * 和ls *之间的区别?

    背景描述: 今天 一同事做入职考试,涉及到1题目,echo * 和ls *之间的区别,没有用过这个用法,再次记录下. 操作过程: 1.执行echo * [root@localhost ~]# echo ...

  7. 全文搜索技术 Lucene solr es (二)Solr(7.7.1)

    学习视频地址:https://www.bilibili.com/video/av45567492?from=search&seid=14848044148453483902 本篇博客是基于此学 ...

  8. ElasticSearch特点|B+Tree|lucene倒排索引结构|lucene与elasticsearch的关系|基本概念

    ElasticSearch特点 1. 天然分片,天然集群: es 把数据分成多个shard,下图中的P0-P2,多个shard可以组成一份完整的数据,这些shard可以分布在集群中的各个机器节点中.随 ...

  9. FPGA与ASIC:它们之间的区别以及使用哪一种?

    FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...

最新文章

  1. React中如何优雅的捕捉事件错误
  2. 远程更新FPGA配置的热启动地址(WBSTAR)的格式?
  3. hibernate中的 bag
  4. 性能计数器监控typeperf
  5. 教你搭建Tiles工程-HelloTiles(附源码)
  6. AtCoder AGC031F Walk on Graph (图论、数论)
  7. Little Sub and Balloons
  8. 左连接 和右链接的区别,内连接和外连接的区别
  9. Python解析XML文件
  10. 计算机还是数学竞赛内容吗,除了AMC,数学牛娃还能参加什么高含金量的数学竞赛...
  11. AutoFac+MVC+WebApi源码----我踩过的坑
  12. 使用sysbench来测试Row Cache解惑
  13. MRS HetuEgine的数据虚拟化实践
  14. Git log diff config高级进阶
  15. adb shell操作文件
  16. 经典的面试题如果不通过其他任何变量实现两个数值类型的变量互相更换值。...
  17. 和大家分享一款使用PHP+MYSQL搭建在线教育系统源码
  18. Zotero数据及文件同步
  19. Java开发指南!mysql修改表字段长度
  20. 12000字解读BabyCare:母婴用品品牌的终局是走向全品类吗?

热门文章

  1. 茹立云:深层网络搜索核心技术研讨
  2. 什么是cmd?能做啥?告诉你...
  3. 阿里云服务器在哪?阿里云服务器最新可选地域分享
  4. Spring入门到精通:第二章 IOC容器(XML方式):1.IOC概念
  5. 古代象形符号,Ancient Messages,UVA1103
  6. 电大 专科 计算机应用,2015春中央电大计算机应用基础(专科)平时作业(3)
  7. 劳动保障协管员计算机考试,劳动保障协管员考试试题
  8. Lind.DDD.Messaging框架通讯组件介绍
  9. java-正则表达式判断手机号
  10. 京东618动物联盟自动化一键完成工具