Elasticsearch 与 OpenSearch:开源搜索技术的演进与选择

在2010年以Apache 2.0开源协议发布后,Elasticsearch迅速成为全球最受欢迎的企业搜索引擎。

Elasticsearch常与Logstash和Kibana一起部署,这一组合被称为 Elasitc Stack,用于启用日志分析用例,包括应用可观察性、安全日志分析和理解用户行为。

2015年,亚马逊利用这一开源协议推出了Amazon Elasticsearch Service(Amazon ES),这是一个云托管服务,允许AWS客户启动可伸缩的Elasticsearch集群,连接数据源到集群端点,并在云中加载、处理、分析或可视化数据。

然而,Elastic公司最终对亚马逊使用其产品和商标提出了反对,并在2019年因涉嫌商标侵权和虚假广告对这家科技巨头提起诉讼。

895ed987ac0bfaa121237d9aadc3fcf5.png

https://www.elastic.co/cn/blog/elastic-and-amazon-reach-agreement-on-trademark-infringement-lawsuit

Elastic和亚马逊在2021年解决了这一诉讼,带来了两个重要的发展:

  • 2021年1月,Elastic 公司宣布,从7.11版本开始,Elasticsearch将根据Server Side Public License(SSPL)和Elastic许可证进行授权。这一变化阻止了亚马逊和其他公司在未与Elastic直接合作的情况下提供Elasticsearch服务。

  • 2021年4月,亚马逊宣布,它将从Elasticsearch的最后一个开源版本(7.10.2)分支,推出一个新的开源搜索引擎项目。由于“Elasticsearch”名称不能再使用,新项目被命名为OpenSearch。亚马逊还将OpenSearch作为云服务提供,名为“Amazon OpenSearch Service”。

OpenSearch 官网:https://opensearch.org/

这里务必提醒一句,阿里云早期的搜索引擎也叫OpenSearch 巧合的是,阿里云开放搜索服务也叫OpenSearch,其地址参见:https://developer.aliyun.com/article/67156。

阿里云OpenSearch(开放搜索服务)是阿里云推出的一套自助式、可定制的云搜索服务,初衷是将阿里巴巴积累近10年的搜索引擎技术平台化、服务化,并开放给广大开发者,降低实现专业搜索产品的门槛,让开发者以较低的成本轻松拥有跟淘宝、天猫、一淘等应用的搜索工具类似的专业搜索产品。

本文介绍的是Elasticserach 分支出来的Opensearch,并非阿里云的OpenSearch,特此说明。

在接下来的部分中,我们将更深入地探讨这两种搜索解决方案在过去近3年中如何发展分化,以及哪一个更适合你的AWS日志分析或企业搜索应用。

如下相同点和不同点主要来自:Elastic官网、OpenSearch官网及相关博客。

https://www.elastic.co/cn/amazon-opensearch-service

https://www.elastic.co/cn/elasticsearch/opensearch

1、OpenSearch与Elasticsearch相同点

OpenSearch是从Elasticsearch的一个相对高级的分叉版本开发而来的,所以两个应用在搜索、分析和仪表盘的所有基本功能上都是相同的。

900f6b0294c23eb7b666e0b6245e362a.png

OpenSearch和Elasticsearch都提供了多租户架构和全文搜索、分布式搜索能力的分析引擎。

因此,两者都可以用来满足网站搜索、企业搜索和日志分析的用例。

2、OpenSearch与Elasticsearch:有何不同?

在比较OpenSearch和Elasticsearch时,主要有以下几点不同:

  • 版本

  • 许可证

  • 社区

  • 功能

  • 安全性

  • 性能

  • 价格

2.1 版本大不同

下图显示了Elasticsearch和OpenSearch两个搜索引擎解决方案的独立发展路径和发布节奏。

95c81b1517b28cbec4f9f6b4b4f5ba4e.png
  • Elasticsearch经过1.X、2.X、5.X、6.X、7.x、8.X版本更新,最终发展到预计在2024年发布的9.x版本。

  • OpenSearch从1.0版本开始于2021年7月发布,然后逐步更新至2.x系列,其中2.6版本预计将是2024年的最后一个2.x系列版本,随后计划发布3.x系列。

2.2 许可证不同

在2021年之前,Elasticsearch在Apache 2.0许可证下可供公众使用。这个许可证允许用户出于任何目的使用、分发或修改软件,以及分发修改后的Elasticsearch版本而无需支付任何版税。

在与亚马逊的争议之后,Elasticsearch现在根据SSPL和Elastic许可证进行授权。这一变化之后,Elasticsearch不再被视为严格意义开源,因为许可证现在要求任何向第三方提供Elasticsearch功能的人必须发布整个源代码和所有第三方运行它所需的API。

OpenSearch目前根据Apache 2.0许可证授权。

一句话说一下SSPL协议和常规开源的不同:SSPL协议要求如果你提供基于此协议软件的服务,必须公开整个服务的源代码,而常规开源软件不需要。

这时候,大家可能在想,我们在使用 Elasticsearch,并没有公开源代码呀。

是这样的,国内能真正基于开源代码二次开发且商业化用途的代码,除了几个BAT、字节等大厂外,屈指可数。

也就是说:通俗说这是针对的类似亚马逊大厂商业化行为的协议!

使用SSPL 协议的部分开源软件如下。

软件名称使用协议时间
MongoDBSSPL2018年10月启用SSPL
GraylogSSPL2020年11月宣布4.0及以后的版本将使用SSPL
Elasticsearch & KibanaSSPL & Elastic许可证2021年1月Elastic NV宣布将来版本将使用SSPL和Elastic许可证双重授权

2.3 社区不同

OpenSearch和Elasticsearch都拥有健康、活跃和忠诚的社区,因此两个搜索引擎都不太可能在功能供给上落后太远或很快不再受支持。

Elasticsearch 社区论文比较成熟,官方论坛地址:https://discuss.elastic.co/。

9499aad9cb69b2fb09ae8ac4eee772e9.png

OpenSearch 官方论坛地址:https://forum.opensearch.org/。

dcf4da2254ea61b673ca71c318e34eea.png

我看了一下,OpenSearch论坛问题数和回复数都还没有形成规模。

2.4 功能不同

亚马逊最初分支Elasticsearch 7.10.2创建OpenSearch时,首先必须删除所有不兼容Apache 2.0许可证的代码。

9b96c237dbdb42a7ec86e86af7db7c69.png

这包括禁用所有收费功能并删除整个Elastic X-Pack代码。

功能ElasticsearchOpenSearch备注
许可证SSPL/Elastic LicenseApache License 2.0OpenSearch保持了完全的开源许可
安全功能部分为付费功能大部分开源可用OpenSearch倾向于开源其安全功能
警报和异常检测付费和开源版本开源可用OpenSearch提供开源的警报和异常检测
SQL支持OpenSearch继承了Open Distro的SQL功能
机器学习支持付费功能开源插件形式提供OpenSearch社区提供ML插件
客户端兼容性完全支持自家产品兼容Elasticsearch 7.10OpenSearch保持对旧Elasticsearch客户端的兼容
社区支持由Elastic公司主导社区驱动OpenSearch鼓励社区贡献和反馈
插件生态较闭合的生态系统开放插件生态OpenSearch促进插件的开源发展
跟踪分析付费功能开源可用OpenSearch提供开源的跟踪分析功能
长期支持版本提供提供OpenSearch承诺提供长期支持的版本

https://github.com/opensearch-project

8cddfd6d01d98675ba603361407c0e61.png

https://github.com/opensearch-project

f5bd2af8580d1dec60ca71a76acd6631.png

2.5 安全性不同

Elasticsearch 和 OpenSearch都配备了许多相同的安全功能。

但是,这些功能都包含在OpenSearch中,而某些功能在Elasticsearch中只对付费客户可用。

如 OpenSearch 官网介绍:其已缺省安全。

762d7ce81826f902b64635fa32ef4b88.png

Elastic 付费功能清单列表:https://www.elastic.co/cn/pricing

81d4ea23f582164b575ab18f1034f2ab.png

2.6 性能不同

如果你正在进行大规模的搜索操作,你可能会对这两种搜索引擎中哪一个能提供更快查询感兴趣。

Elastic最近发表了一篇博客,标题为“Elasticsearch vs. OpenSearch:揭开性能差距”。文章地址:

https://www.elastic.co/cn/blog/elasticsearch-opensearch-performance-gap

Elastic官网文档强调:“自从 Elasticsearch 的一个早期版本问世以来,OpenSearch 就没有跟上创新的步伐。自 OpenSearch GA 以来,Elasticsearch 在功能创新方面已经超过了 4 倍。”

Elastic官方对比强调,如下图所示——Elasticsearch在各个关键性能指标上的优势,并且更加节约存储资源。

f4d4ac39ee95a19bdf492ce2b9a4daab.png
  • 文本查询(Text Querying):Elasticsearch在文本查询性能上比OpenSearch快76%。

  • 排序(Sorting):在排序操作中,Elasticsearch比OpenSearch快58%。

  • 日期直方图(Date Histogram):在进行日期直方图聚合时,Elasticsearch显示出比OpenSearch快81%的性能。

  • 条款(Terms):在处理条款查询时,Elasticsearch的性能比OpenSearch快61%。

  • 范围(Ranges):在范围查询方面,Elasticsearch展现出比OpenSearch快42%的性能。

  • Elasticsearch使用的存储空间比OpenSearch少37%。

这意味着Elasticsearch在处理同等任务时,不仅查询速度更快,而且在存储效率上也更优。

如下截图参见博客:https://www.elastic.co/cn/blog/migrating-1-billion-log-lines-opensearch-elasticsearch

8c3a3521355fb94c28c15900a4ef1b0a.png

左侧是:Opensearch,右边是:Elasticsearch。明显对比可知:Elasticsearch 较 OpenSearch 节省了 23 %的存储空间。

2.7 价格不同

Elasticsearch和OpenSearch的自我管理版本可以免费下载,但用户需要使用自己的硬件和计算资源来安装、管理和操作它们。

中小企业国内使用 Elasticsearch 居多,普通的免费基本功能基本够用。

而部分商业化银行等大型企业使用 Elasticsearch 商业化功能的也不在少数。

国内还有新特点就是云厂商和Elastic合作紧密,推出的 Elasticsearch 版本。比如:阿里云Elasticsearch、腾讯云 Elasticsearch用得也不少。

7466ce76c50e3a3854c28ceb70f1d8f4.png 4437fb3180e75b19b6a62947d0b0b582.png

Elasticsearch 下载地址:

https://www.elastic.co/cn/downloads/elasticsearch

OpenSearch 下载地址:https://opensearch.org/downloads.html

阿里云Elasticserach:

https://www.aliyun.com/product/bigdata/elasticsearch

腾讯云Elasticsearch:

https://cloud.tencent.com/product/es

2.8 两者可相互导入

OpenSearch 迁移到 Elasticsearch 参见:

https://www.elastic.co/cn/blog/migrating-1-billion-log-lines-opensearch-elasticsearch

Elasticsearch 迁移到 OpenSearch 参见:

https://opensearch.org/docs/latest/upgrade-to/upgrade-to/

3、总结

OpenSearch已发布3年多,Elasticsearch和OpenSearch已存在很多不同,但它们最终都源自同一个版本:Elasticsearch 7.10.2

我们不对Elasticsearch和Amazon OpenSearch之间的选型提供直接的推荐,因为最合适的选择将取决于项目或产品独特的需求和环境。但,文中数据相信会给你提供参考。

建议读者根据自己的具体情况和偏好做出决定,并考虑功能需求、成本效益、长期的技术支持或自身是否具备架构及性能调优等能力。

4、参考

  • https://www.chaossearch.io/blog/opensearch-vs-elasticsearch-comparison

  • https://articles.zsxq.com/id_on65crp8xwfe.html

  • https://www.ruanyifeng.com/blog/2023/07/weekly-issue-264.html

  • https://wx.zsxq.com/dweb2/index/search/Opensearch/alltopics

7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线

4147ef50d6c9abe3b526a781683ccb0e.jpeg

更短时间更快习得更多干货!

和全球 近2000+ Elastic 爱好者一起精进!

http://elastic6.cn/——ElasticStack进阶助手

949767a1b0a14e903d52b629437eef99.gif

比同事抢先一步学习进阶干货!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv计算机视觉

树莓派主机的无键盘解决 进入控制面板,更改适配器设置,WIFI属性,勾选 1.将网线两头分别接入树莓派和笔记本的网线接口 2.在无线连接属性那里勾选允许其他用户连接 3.运行cmd使用arp -a查看树莓派ip地址,或者使用ipscanner查看 cmd…

Springboot+vue的疫情信息管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的疫情信息管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的疫情信息管理系统,采用M(model&a…

计算机专业必看的几部电影

计算机专业必看的几部电影 计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,…

LeetCode每日一题589. N-ary Tree Preorder Traversal

文章目录 一、题目二、题解 一、题目 Given the root of an n-ary tree, return the preorder traversal of its nodes’ values. Nary-Tree input serialization is represented in their level order traversal. Each group of children is separated by the null value (S…

【Git】基本概念和使用方式

Git是一个分布式版本控制系统,用于管理和跟踪计算机文件的变化。它最初是由Linus Torvalds开发的,用于管理Linux内核的开发。 Git的基本概念包括: 仓库(Repository):一个仓库是Git中存储项目文件和历史变更…

webdriver.Remotegrid

在其他主机上运行webdriver,可用于分布式执行环境 1.下载和Chrome版本对应的webdriver,将其添加到PATH环境变量中 Linux下:export PATH=$PATH:Library/Drivers >> ~/.bash_profile source ~/.bash_profileMac下: Mac 下的source xxx只会生效一次(从 macOS Catalina …

如何结合《ISO 55001资产管理-管理系统要求》,提升资产管理绩效

在当今竞争激烈的商业环境中,有效的资产管理对于组织的成功至关重要。ISO 55001标准为组织提供了一个框架,帮助其建立和维护一个高效的资产管理系统,从而实现更好地管理资产并提升业绩的目标。本文将探讨如何结合ISO 55001标准,以…

猫多喝水好吗?可以促进猫咪多喝水的主食分享

猫咪多喝水确实是有益的。适量的饮水对于猫咪的健康至关重要,有助于维持体液平衡、促进消化、减少便秘的风险,并对泌尿系统的健康起到保护作用。正常情况下,建议每公斤体重的猫每天摄入60-80毫升的水,除了与体重相关外&#xff0c…

python使用工厂模式和策略模式实现读文件、分析内容功能

当涉及到在 Python 中创建类以及使用设计模式来实现读取文件和分析内容的功能时,我们可以考虑使用工厂模式和策略模式的结合。下面是一个简单的示例,演示如何通过创建类和使用设计模式来实现这一功能: # 工厂模式:根据不同的分析…

使用chatgpt写VBA程序操作EXCEL

在chatgpt输入,我有个EXCEL,它有4列,第一列是序号,第二列是机号,第三列是日期,第四列是能耗。同一机号会对应多个日期和多个该日期的能耗。我想让同一个机号的数据下新增加一行,在这一行内算出该…

基于51单片机--智能指纹识别密码锁设计(软件准备)

一.系统介绍 本次分享的是一款基于51单片机的智能指纹识别密码锁设计,该系统以STC89C52单片机作为模块核心,通过串口通信控制指纹模块AS608实现录取指纹并存储指纹数据,并通过LCD12864液晶显示屏比对流程及效果,采用4X4矩阵键盘完…

【Linux系统化学习】深入理解文件系统(Ext2文件系统)

目录 前言 磁盘的物理结构 物理结构 磁头和盘片工作解析图 盘面区域划分图(俯视盘面图) 扇区的寻址、定位(CHS定位) 磁盘存储的逻辑抽象结构 LBA定址 文件系统 磁盘分区 EXT2文件系统 组块中的信息介绍 查看inode编号…

14个常见的Java课程设计/毕业设计合集(源码+文档)

从网上整理收集了14个常见的java系统设计源码,可以用于课程作业或者毕业设计。 1.基于java的家政预约网站系统 平台采用B/S结构,后端采用主流的Springboot框架进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 …

ComfyUI新宠,精准位置生成模型GLIGEN,附下载

GLIGEN 是一种在文本到图像模型中指定对象精确位置的直观方法。自带GUI,操作非常便利,可以精确控制要在什么位置画什么内容,比纯文字描述的RPG-DiffusionMaster更精确。 ComfyUI是一个基于节点的图形用户界面(GUI)工具…

【AI场景应用】智能电话机器人

从前有一个小型电商公司,每天都接收大量的客户咨询和订单确认电话。由于人手不足,公司的客服团队经常忙得不可开交。为了解决这个问题,他们引入了一位智能电话机器人,名叫小智。 小智是一位功能强大的机器人,他能够全…

助力智能化农田作物除草,基于轻量级YOLOv8n开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中,关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了,结合智能化的设备可以实现只能除草等操作,玉米作物场景下的杂草检测我们则少有涉及,这里本文的主要目的就是想要基于最新的YOLOv8下最轻量级…

33、IO/标准IO对图片操作练习及文件IO相关练习20240219

一、使用fread和fwrite完成两个图片文件的拷贝&#xff08;标准IO&#xff09;。 代码&#xff1a; #include<myhead.h>int main(int argc, const char *argv[]) {FILE *srcfpNULL;FILE *destfpNULL;if((srcfpfopen("./hongfeng.bmp","r"))NULL ||…

寻找最富裕的小家庭

题目描述 在一棵树中&#xff0c;每个节点代表一个家庭成员&#xff0c;节点的数字表示其个人的财富值&#xff0c;一个节点及其直接相连的子节点被定义为一个小家庭。 现给你一棵树&#xff0c;请计算出最富裕的小家庭的财富和。 输入描述 第一行为一个数N&#xff0c;表示…

【LeetCode-494】目标和(回溯动归)

目录 LeetCode494.目标和 题目描述 解法1&#xff1a;回溯法 代码实现 解法2&#xff1a;动态规划 代码实现 LeetCode494.目标和 题目链接 题目描述 给定一个非负整数数组&#xff0c;a1, a2, ..., an, 和一个目标数&#xff0c;S。现在你有两个符号 和 -。对于数组中…

哪个电商抠图软件比较好用?这些软件也太好用了吧

当需要从原始场景中分离图片中的对象时&#xff0c;抠图变得尤为关键。对于电商从业者而言&#xff0c;抠图是不可或缺的步骤。手动抠图耗时费力&#xff0c;而利用一键抠图软件可以显著提高工作效率和质量。然而&#xff0c;市场上有众多抠图软件&#xff0c;其中哪些是真正好…