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

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

  • 1.历史发展
  • 2.OpenSearch 与 Elasticsearch 相同点
  • 3.OpenSearch 与 Elasticsearch 不同点
    • 3.1 版本大不同
    • 3.2 许可证不同
    • 3.3 社区不同
    • 3.4 功能不同
    • 3.5 安全性不同
    • 3.6 性能不同
    • 3.7 价格不同
    • 3.8 两者可相互导入
  • 4.总结

1.历史发展

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

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

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

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

在这里插入图片描述

🚀《Elastic 与 Amazon 就商标侵权诉讼达成协议》

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

  • 2021 年 1 月,Elastic 公司宣布,从 7.11 版本开始,Elasticsearch 将根据 Server Side Public LicenseSSPL)和 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

2.OpenSearch 与 Elasticsearch 相同点

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

在这里插入图片描述
OpenSearch 和 Elasticsearch 都提供了 多租户架构全文搜索分布式搜索 能力的分析引擎。

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

3.OpenSearch 与 Elasticsearch 不同点

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

  • 版本
  • 许可证
  • 社区
  • 功能
  • 安全性
  • 性能
  • 价格

3.1 版本大不同

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

在这里插入图片描述

  • Elasticsearch 经过 1.x2.x5.x6.x7.x8.x 版本更新,最终发展到预计在 2024 年发布的 9.x 版本。
  • OpenSearch 从 1.0 版本开始于 2021 年 7 月发布,然后逐步更新至 2.x 系列,其中 2.6 版本预计将是 2024 年的最后一个 2.x 系列版本,随后计划发布 3.x 系列。

3.2 许可证不同

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

在与亚马逊的争议之后,Elasticsearch 现在根据 SSPLElastic 许可证 进行授权。这一变化之后,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 许可证双重授权

3.3 社区不同

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

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

在这里插入图片描述

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

在这里插入图片描述
我看了一下,OpenSearch 论坛问题数和回复数都还没有形成规模。

3.4 功能不同

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

在这里插入图片描述

这包括禁用所有收费功能并删除整个 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 承诺提供长期支持的版本

Elastic GitHub:https://github.com/elastic

在这里插入图片描述

OpenSearch GitHub:https://github.com/opensearch-project

在这里插入图片描述

3.5 安全性不同

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

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

如 OpenSearch 官网介绍:其已缺省(系统默认)安全。

在这里插入图片描述

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

在这里插入图片描述

3.6 性能不同

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

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

🚀 文章地址:https://www.elastic.co/cn/blog/elasticsearch-opensearch-performance-gap

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

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

在这里插入图片描述

  • 文本查询Text Querying):Elasticsearch 在文本查询性能上比 OpenSearch 快 76 % 76\% 76%
  • 排序Sorting):在排序操作中,Elasticsearch 比 OpenSearch 快 58 % 58\% 58%
  • 日期直方图Date Histogram):在进行日期直方图聚合时,Elasticsearch 显示出比 OpenSearch 快 81 % 81\% 81% 的性能。
  • 条款Terms):在处理条款查询时,Elasticsearch 的性能比 OpenSearch 快 61 % 61\% 61%
  • 范围Ranges):在范围查询方面,Elasticsearch 展现出比 OpenSearch 快 42 % 42\% 42% 的性能。
  • Elasticsearch 使用的 存储空间 比 OpenSearch 少 37 % 37\% 37%

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

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

在这里插入图片描述
左边是 Opensearch,右边是 Elasticsearch。明显对比可知:Elasticsearch 较 OpenSearch 节省了 23 % 23\% 23% 的存储空间。

3.7 价格不同

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

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

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

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

在这里插入图片描述

  • 🚀 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

3.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/

4.总结

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM- 注意力机制

一:什么是注意力机制,以及产生背景? (1):RNN模型[RNN模型]的缺点:下图是例如RNN模型解决机器翻译的例子,从这个例子可以看到Encoder最后一个向量(eos)送给了…

Open3D 从体素网格构建八叉树

目录 一、概述 1.1体素网格 1.2八叉树构建 1.3应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2体素网格 3.3八叉树 3.4体素网格 一、概述 八叉树(Octree)是一种树状数据结构,用于递归地将三维空间划分为…

极客天成RDMA分布式存储加速自动驾驶仿真建模

01 自动驾驶汽车行业发展现状 随着全球5G技术的应用与发展,人工智能产业的逐步推进,无人驾驶汽车行业市场规模显著增长。中商产业研究院发布的《2024-2029全球与中国无人驾驶列车系统市场现状及未来发展趋势》显示,2023年全球无人驾驶汽车行…

AutoMQ 生态集成 Kafdrop-ui

Kafdrop [1] 是一个为 Kafka 设计的简洁、直观且功能强大的Web UI 工具。它允许开发者和管理员轻松地查看和管理 Kafka 集群的关键元数据,包括主题、分区、消费者组以及他们的偏移量等。通过提供一个用户友好的界面,Kafdrop 大大简化了 Kafka 集群的监控…

【Ubuntu】windows和Linux文件互传、共享

【Ubuntu】windows和Linux文件互传、共享 一、FTP、SAMBA、NFS简介 FTP: File Transfer Protocol(文件传输协议) SAMBA: 基于SMB(Server Message Block服务器消息块)协议的软件实现 NFS: Network File System(网络文件系统) 二、Linux 共享文…

QT案例-通过QCustomPlot库绘制Window系统CPU温度实时折线图

之前项目中涉及到了获取硬件信息内容,对CPU的温度监控有点兴趣,观察和百度发现鲁大师和驱动人生的CPU温度监控貌似是用驱动实现的,有点太高大上了,搞不懂。后面经过到处查找资料终于找到了Qt在Windows 环境下监控CPU等硬件温度/运…

android文本长按复制

android文本长按复制 📖1. 长按直接复制✅步骤一:定义一个TextView✅步骤二:为TextView注册长按事件✅步骤三:弹出系统复制功能 📖2. 长按弹框确认复制✅步骤一:定义一个TextView✅步骤二:封装P…

vue详解

目录 ​编辑 常用指令 v-for v-bind v-if & v-show v-if v-show v-on v-model Vue生命周期 ​编辑 Axios Axios使用步骤 Axios-请求方式别名 Vue简单案例 常用指令 指令:HTML标签上带有 v-前缀的特殊属性,不同的指令具有不同的含义,可…

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片(Form_Vision部分代码)

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片(Form_Vision部分代码) 1 目标效果视频 CamManager 2 增加一个class IMG_BUFFER 用来管理采集的图片 // <summary> /// IMG_BUFFER 用来管理内存图片的抓取队列 /// </summary> public class IMG_BUFF…

imx6ull/linux应用编程学习(14) MQTT基础知识

什么是mqtt&#xff1f; 与HTTP 协议一样&#xff0c; MQTT 协议也是应用层协议&#xff0c;工作在 TCP/IP 四层模型中的最上层&#xff08;应用层&#xff09;&#xff0c;构建于 TCP/IP协议上。 MQTT 最大优点在于&#xff0c;可以以极少的代码和有限的带宽&#xff0c;为连接…

electron在VSCode和IDEA及webStrom等编辑器控制台打印日志乱码

window10环境下设置 1.打开Windows设置 2.打开时间和语言&#xff0c;选择语言菜单、如何点击管理语言设置 3.打开之后选择管理&#xff0c;选择更改系统区域设置&#xff0c;把Beta版&#xff1a;使用Unicode UTF-8提供全球语言支持 勾上&#xff0c;点击确定&#xff0c;…

后端学习(一)

添加数据库包&#xff1a; 数据库连接时 发生错误&#xff1a; 解决方式&#xff1a; SqlConnection conn new SqlConnection("serverlocalhost;databaseMyBBSDb;uidsa;pwd123456;Encryptfalse;") ;conn.Open();SqlCommand cmd new SqlCommand("SELECT * FROM…

Debug-017-elementUI-el-cascader组件首次选择选项不触发表单的自定义校验

前情提要&#xff1a; 今天维护一个表单校验的时候发现一件事情&#xff0c;就是在表单中使用了 el-cascader组件&#xff0c;希望根据接口返回数据去动态校验一下这里面的选项&#xff0c;符合逻辑就通过自定义的表单校验&#xff0c;不符合就在这一项的下面标红提示。做的时候…

OpenHarmony 入门——单元测试UnitTest快速入门

引言 OpenHarmony 的单元测试&#xff08;UnitTest&#xff09;是一个关键的软件开发过程&#xff0c;它确保代码的各个部分能够按预期工作&#xff0c;OpenHarmony的测试框架中提供了很多种的单元测试&#xff0c;今天简单介绍下UnitTest 类型的TDD测试。 OpenHarmony 的TDD …

群体优化算法---文化算法介绍,求解背包问题

介绍 文化算法&#xff08;Cultural Algorithm, CA&#xff09;是一种基于文化进化理论的优化算法&#xff0c;首次由Robert G. Reynolds在20世纪90年代提出。文化算法通过模拟人类社会中的文化进化过程&#xff0c;利用个体与群体的双重进化机制来解决优化问题。其基本思想是…

MGRE复习综合实验

R1与R5之间使用ppp的pap认证&#xff0c;R5为主认证方&#xff1a; R1 interface Serial4/0/0ip address 15.0.0.1 8link-protocol pppppp pap local-user huawei password cipher 123456 R5 aaalocal-user huawei password cipher 123456local-user huawei service-type…

海外媒体发稿-全媒体百科

全球知名媒体机构 在全球范围内&#xff0c;有许多知名的新闻机构负责报道世界各地的新闻事件。以下是一些国外常见的媒体机构&#xff1a; AP&#xff08;美联社&#xff09;合众国际社&#xff08;UPI&#xff09;AFP(法新社)EFE&#xff08;埃菲通讯社&#xff09;Europa …

JavaSE学习笔记第二弹——对象和多态(上)

目录 面向对象基础 面向对象程序设计的定义 类的基本结构 成员变量 成员方法 方法定义与使用 设计练习 方法重载 构造方法 静态变量和静态方法 String和StringBuilder 基本含义 区别 总结 今天我们继续来学习JavaSE&#xff0c;扩展和Java相关的知识&#xff0c;…

【软件分享】气象绘图软件Panoply

气象是大气中的物理现象&#xff0c;气象要素则是表明大气物理状况的要素&#xff0c;主要的气象要素有降水、风、气压、湿度等。为了研究气象要素在空间上的分布和运动状况&#xff0c;我们需要对气象要素进行空间上进行可视化&#xff0c;这个时候就需要气象领域的一些的绘图…

FastReport 指定sql,修改数据源 ( 非DataSet修改 )

FastReport 指定sql&#xff0c;修改数据源&#xff0c;非DataSet修改 介绍报告文件&#xff1a; codetest.frx 文件核心代码&#xff1a;&#xff08;扩展&#xff09;小结一下&#xff1a; 介绍 在FastReport中&#xff0c;经常会遇到需要给 sql 加条件的情况。 &#xff0…