--- title: "搜索百科(4):OpenSearch — 开源搜索的新选择" date: 2025-09-18 lastmod: 2025-09-18 description: "《搜索百科》专栏系列,本文主要介绍 OpenSearch,它是从 Elasticsearch 7.10.2 分支而来的开源搜索与分析套件,由 AWS 主导开发并贡献给开源社区。OpenSearch 包括 OpenSearch(搜索引擎)和 OpenSearch Dashboards(可视化界面),完全兼容 Apache 2.0 协议,旨在为用户提供一个真正开源、社区驱动的搜索与分析解决方案。" tags: ["OpenSearch", "Elasticsearch", "AWS", "搜索引擎", "搜索百科"] summary: "大家好,我是 INFINI Labs 的石阳。 欢迎关注 《搜索百科》 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 上一篇我们围观了 “流量明星” Elasticsearch — 从食谱搜索到 PB 级明星产品,从 Apache 2.0 到 SSPL 协议风波;今天我们来聊聊它的“分叉兄弟” OpenSearch。 引言 # 2021 年,当 Elasticsearch 宣布将其许可证从 Apache 2.0 变更为 SSPL/Elastic License 时,整个搜索社区为之震动。这一变更直接催生了一个新的开源分支 — OpenSearch。这个由 AWS 主导的项目不仅在短短几年内迅速发展成熟,更成为了许多企业在云原生环境下搜索解决方案的新选择。 OpenSearch 概述 # OpenSearch 是从 Elasticsearch 7.10.2 分支而来的开源搜索与分析套件,由 AWS 主导开发并贡献给开源社区。OpenSearch 包括 OpenSearch(搜索引擎)和 OpenSearch Dashboards(可视化界面),完全兼容 Apache 2.0 协议,旨在为用户提供一个真正开源、社区驱动的搜索与分析解决方案。 首次发布:2021 年 4 月 最新版本:3.2.0(截止 2025 年 9 月) 开源协议:Apache License 2.0 主导企业:Amazon Web Services (AWS) 官方网址: https://opensearch." --- 大家好,我是 INFINI Labs 的石阳。 欢迎关注 **《搜索百科》** 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 上一篇我们围观了 [“流量明星” Elasticsearch](https://infinilabs.cn/blog/2025/search-wiki-3-elasticsearch/) — 从食谱搜索到 PB 级明星产品,从 Apache 2.0 到 SSPL 协议风波;今天我们来聊聊它的“分叉兄弟” **OpenSearch**。 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/1.jpg" "" %}} ## 引言 2021 年,当 Elasticsearch 宣布将其许可证从 Apache 2.0 变更为 SSPL/Elastic License 时,整个搜索社区为之震动。这一变更直接催生了一个新的开源分支 — OpenSearch。这个由 AWS 主导的项目不仅在短短几年内迅速发展成熟,更成为了许多企业在云原生环境下搜索解决方案的新选择。 ## OpenSearch 概述 OpenSearch 是从 Elasticsearch 7.10.2 分支而来的开源搜索与分析套件,由 AWS 主导开发并贡献给开源社区。OpenSearch 包括 OpenSearch(搜索引擎)和 OpenSearch Dashboards(可视化界面),完全兼容 Apache 2.0 协议,旨在为用户提供一个真正开源、社区驱动的搜索与分析解决方案。 - **首次发布**:2021 年 4 月 - **最新版本**:3.2.0(截止 2025 年 9 月) - **开源协议**:Apache License 2.0 - **主导企业**:Amazon Web Services (AWS) - **官方网址**:[https://opensearch.org/](https://opensearch.org/) - **GitHub 仓库**:[https://github.com/opensearch-project](https://github.com/opensearch-project) ## 诞生故事:开源协议争议的产物 时间回到 2021 年 1 月,Elastic 公司宣布 Elasticsearch 从 7.11 版本起不再使用 Apache 2.0 协议,而改为 Elastic License 与 SSPL。这一决定立刻在社区和产业界引发巨大争议。 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/4.jpg" "" %}} AWS(亚马逊云)作为 Elasticsearch 的重要用户与云服务提供商,不愿意被 Elastic 的商业条款所限制,随即牵头将 Elasticsearch 7.10 版本 fork 出来,并与 Kibana 一起重命名为 OpenSearch 与 OpenSearch Dashboards。 从此,开源世界分裂成了两条路线: 1. Elastic 官方的 Elasticsearch + Kibana(带有商业许可)。 2. 社区驱动的 OpenSearch + OpenSearch Dashboards(继续遵循 Apache 2.0 协议)。 这个分叉,既是开源协议之争的产物,也是云厂商与开源公司之间博弈的缩影。虽然初期被质疑过“是否真开源”,但经过数年的迭代,OpenSearch 已形成了相对独立的开发节奏和用户群体,插件和生态也逐渐丰富。 ## 技术架构与特性 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/2.png" "" %}} OpenSearch 是一个基于 Apache Lucene 的分布式搜索与分析引擎。在将数据添加到 OpenSearch 后,可以对其执行各种功能完备的全文搜索操作:按字段搜索、跨多个索引搜索、提升字段权重、按得分排序结果、按字段排序结果以及对结果进行聚合。 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/3.png" "" %}} OpenSearch 的核心架构由集群、节点、索引、分片和文档组成。最高层是 OpenSearch 集群,它是由多个节点组成的分布式网络,每个节点会根据其类型负责不同的集群操作。数据节点负责存储索引(即文档的逻辑分组),并处理数据写入、搜索和聚合等任务。 每个索引会被划分为多个分片,分片包含主数据和副本数据。分片会分布在多台机器上,从而实现水平扩展,提升性能并高效利用存储资源。 ## OpenSearch vs Elasticsearch:详细对比 | 特性 | OpenSearch | Elasticsearch | | --------------- | ---------------------------------- | ---------------------------- | | **许可证** | Apache 2.0(完全开源) | SSPL/Elastic License/AGPLv3 | | **起始版本** | 基于 Elasticsearch 7.10.2 | 从 7.11 开始协议变更 | | **社区治理** | 开放治理模式,由社区驱动 | 由 Elastic NV 公司主导 | | **安全性** | 所有安全功能默认开源 | 部分高级安全功能需要付费 | | **AI/向量检索** | 近年快速跟进,兼容性较好 | 原生支持,功能逐步增强 | | **部署选择** | AWS OpenSearch Service / 自建 | Elastic Cloud / 自建 | | **升级路径** | 从 Elasticsearch 7.x 平滑迁移 | 原生升级路径 | | **社区活跃度** | 社区逐渐壮大,受到纯开源拥护者欢迎 | 用户基础庞大,但分裂带来争议 | ## 快速开始:5 分钟部署 OpenSearch ### 1. 使用 Docker 部署 ```bash # 拉取 OpenSearch 镜像 docker pull opensearchproject/opensearch:3.2.0 # 启动 OpenSearch 节点 docker run -d --name opensearch-node \ -p 9200:9200 -p 9600:9600 \ -e "discovery.type=single-node" \ -e "plugins.security.disabled=true" \ opensearchproject/opensearch:3.2.0 # 拉取 OpenSearch Dashboards docker pull opensearchproject/opensearch-dashboards:3.2.0 # 启动 Dashboards docker run -d --name opensearch-dashboards \ -p 5601:5601 \ -e "OPENSEARCH_HOSTS=http://opensearch-node:9200" \ opensearchproject/opensearch-dashboards:3.2.0 ``` ### 2. 验证安装 ```bash # 检查集群状态 curl -X GET "http://localhost:9200/" ``` 出现如下结果说明安装成功。 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/5.png" "" %}} ### 3. 创建索引和搜索 ```bash # 索引文档 curl -X POST "http://localhost:9200/my-first-index/_doc" -H 'Content-Type: application/json' -d' { "title": "OpenSearch 入门指南", "content": "这是我在 OpenSearch 中的第一个文档", "timestamp": "2025-09-18T10:00:00" }' # 执行搜索 curl -X GET "http://localhost:9200/my-first-index/_search" -H 'Content-Type: application/json' -d' { "query": { "match": { "content": "第一个文档" } } }' ``` ### 4. 访问控制台 打开浏览器访问 http://localhost:5601 即可使用 OpenSearch Dashboards 界面。 {{% load-img "/img/blog/2025/search-wiki-4-opensearch/dashboards.png" "" %}} ## 结语 OpenSearch 的出现,是开源社区的一次“自救”。它不仅延续了 Elasticsearch 的核心功能,还代表了另一种治理模式:由云厂商和社区共同维护,保证了开源协议的延续。 在搜索技术的版图里,Elasticsearch 与 OpenSearch 的分叉,注定会成为一个重要的历史节点。未来,两者可能会继续竞争,也可能各自发展出独特的生态。 🚀 **下期预告** 下一篇我们将介绍 OpenSearch 的另一个兄弟 **Easysearch**,一个衍生自开源协议 Apache 2.0 的 Elasticsearch 7.10.2 版本的轻量级搜索引擎,作为一个 ES 国产替代方案,看看它如何以其极致的速度和易用性在国内搜索领域占据一席之地。 💬 **三连互动** 1. 您是否考虑过从 Elasticsearch 迁移到 OpenSearch? 2. 在开源协议方面,您更倾向于哪种模式?Apache 2.0 还是 Elastic 的多重许可? 3. 对于云厂商与开源项目之间的关系,您有什么看法? 对搜索技术感兴趣的朋友,也欢迎加我微信(ID:lsy965145175)备注“搜索百科”,拉你进  **搜索技术交流群**,一起探讨与学习! ✨ **推荐阅读** - [搜索百科(3):Elasticsearch — 搜索界的"流量明星"](https://infinilabs.cn/blog/2025/search-wiki-3-elasticsearch/) - [搜索百科(2):Apache Solr — 企业级搜索的开源先锋](https://infinilabs.cn/blog/2025/search-wiki-2-solr/) - [搜索百科(1):Lucene — 打开现代搜索世界的第一扇门](https://infinilabs.cn/blog/2025/search-wiki-1-lucene/) 🔗 **参考资源** - [OpenSearch 官方文档](https://opensearch.org/docs/latest/) - [OpenSearch 与 Elasticsearch 功能对比](https://www.netdata.cloud/academy/elasticsearch-vs-opensearch/)