前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >科普向 | Lucene,Solr,Elasticsearch之间的区别和联系

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

作者头像
大数据梦想家
发布2021-01-27 16:38:58
1.9K0
发布2021-01-27 16:38:58
举报

最近有幸研究到了这块领域的内容,而我本人也对于这块非常的感兴趣,所以打算写一篇文章记录一下…

在这里插入图片描述
在这里插入图片描述

简介

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相对开发维护者较少,更新太快,学习使用成本较高。具体选择哪一项技术,还需要根据不同的场景来进行结合选择。

结语

很高兴能在这看见你,朋友,有任何好的想法或者建议都可以在评论区留言,或者直接私信我也ok。在最美的年华,做最好的自己,我是00后Alice,我们下一期见~~

一键三连,养成习惯~

文章持续更新,可以微信搜一搜「 猿人菌 」第一时间阅读,思维导图,大数据书籍,大数据高频面试题,海量一线大厂面经…期待您的关注!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • Lucene
      • Elasticsearch
        • Solr
        • 区别和联系
        • 效率对比
        • 结论
        • 结语
        相关产品与服务
        Elasticsearch Service
        腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档