首页
/ OpenSearch 3.0.0-alpha1 技术解析:下一代分布式搜索与分析引擎的演进

OpenSearch 3.0.0-alpha1 技术解析:下一代分布式搜索与分析引擎的演进

2025-06-04 12:11:53作者:牧宁李

OpenSearch 作为一款开源的分布式搜索与分析引擎,在 3.0.0-alpha1 版本中迎来了一系列重大更新。这个版本不仅包含了多项突破性改进,也标志着项目向现代化架构迈出了重要一步。本文将深入解析这一版本的核心技术变革及其对用户的影响。

架构升级与性能优化

OpenSearch 3.0.0-alpha1 最显著的改变是底层架构的重大升级。项目已将最低支持的 Java 运行时环境提升至 JDK21,这一决策使得 OpenSearch 能够充分利用现代 Java 平台的最新特性。同时,项目完成了对 Lucene 10.1.0 的升级,为搜索性能带来了显著提升。

在模块化方面,OpenSearch 3.0.0-alpha1 引入了 JPMS(Java 平台模块系统)支持的第一阶段实现。这一改变通过消除顶级分割包问题,为未来的模块化发展奠定了基础。值得注意的是,项目还移除了 transport-nio 插件,简化了网络传输层的架构。

搜索与查询功能增强

查询功能方面,新版本引入了多项改进。首先,默认相似度算法已从 LegacyBM25Similarity 切换为 BM25Similarity,这标志着项目正式拥抱更现代的搜索评分算法。对于通配符字段索引,现在仅索引输入数据的 3gram,这一优化显著减少了索引大小并提升了查询效率。

在聚合查询方面,新增了执行提示(execution_hint)功能到基数聚合器请求中,为用户提供了更多性能调优的选择。同时修复了多项查询相关的问题,包括术语聚合中缺失值的桶处理问题,以及嵌套 flat_object 字段上存在查询的异常问题。

安全与权限模型强化

安全方面,3.0.0-alpha1 版本引入了更严格的权限控制。新增了 ThreadContextPermission 用于 stashAndMergeHeaders 和 stashWithOrigin 操作,同时核心功能现在可以执行 markAsSystemContext 方法。这些改变使得系统安全边界更加清晰。

项目还移除了 COMPAT 区域设置提供程序,转而使用 CLDR,这一变化使得本地化处理更加标准化。此外,系统现在使用 Bouncy Castle 库来解析 PEM 文件,增加了密钥长度,并允许更广泛地使用已知的加密二进制扩展。

存储与索引管理改进

索引管理方面,新版本引入了多项重要变更。首先,增加了集群和索引级别的设置,用于限制每个节点和每个索引的主分片总数。这一功能为大规模集群管理提供了更精细的控制手段。

对于索引缓冲区的表示方式也进行了修正,统一了 total_indexing_buffer_in_bytes 和 total_indexing_buffer 的格式。同时,强制合并线程数现在默认设置为核心数的 1/8,这一调整有助于更好地利用系统资源。

新功能亮点

3.0.0-alpha1 版本引入了多项令人兴奋的新功能:

  1. HTTP/2 服务器端支持:为现代网络协议提供了原生支持,为性能优化开辟了新途径。

  2. 视图功能:通过提供虚拟层简化了对一个或多个索引的数据访问和操作,大大提升了数据管理的灵活性。

  3. 拉取式摄取引擎:全新的数据摄取模式,包括 API、Kafka 插件和从摄取源拉取数据的引擎实现,为实时数据处理提供了新选择。

  4. 系统增强:增加了 systemd 配置以加强操作系统核心安全性,并提供了相应的集成测试。

  5. Arrow Flight RPC 插件:为节点间通信提供了新的高性能协议支持。

向后兼容性说明

作为主要版本更新,3.0.0-alpha1 包含多项破坏性变更。项目团队已移除大量已弃用的 API 和功能,包括旧版 ESVersion 常量、自定义集合类以及一些过时的设置。用户升级时需要特别注意这些变更,并相应调整应用程序代码。

总结

OpenSearch 3.0.0-alpha1 版本代表了项目发展的重要里程碑。通过架构现代化、性能优化和新功能引入,这一版本为构建下一代搜索和分析解决方案奠定了坚实基础。虽然包含破坏性变更,但这些改变为未来的功能扩展和性能提升创造了条件。对于考虑采用 OpenSearch 的用户,这一版本值得密切关注,特别是那些需要现代协议支持和高性能搜索能力的应用场景。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.48 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
515
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
783
1.57 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
800
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
970
2.28 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
480
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.01 K
766
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
808
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
647
284