OpenSearch 3.4 现已正式发布,为多种应用场景带来了大量新功能和更新,并增强了常见工作负载的性能。
主要升级包括:
- 全新的无代码用户体验,用于构建智能体(Agents)和运行智能体搜索。
- 一系列用于提升搜索相关性的新工具。
- 针对分析和可观测性用例,扩展了管道处理语言(PPL)命令集。
- 聚合工作负载性能显著提升。
搜索
OpenSearch 3.4 引入了新功能,以简化智能体搜索的实现,并提升搜索结果的相关性。
通过无代码体验为智能体搜索赋能
OpenSearch 3.4 推出了重新设计的无代码用户体验,用于构建智能体和运行智能体搜索。智能体创建用户界面现在全面支持最新的智能体功能,包括外部模型上下文协议(MCP)集成、搜索模板集成、会话记忆和单模型支持。
在运行智能体搜索时,用户可以无缝切换索引和智能体,启用会话搜索,清除历史记录,停止查询,并重新运行新查询。智能体摘要视图提供了所使用步骤和工具的序列可见性,而增强的文档结果与可视化索引支持,便于验证查询相关性和结果准确性。智能体配置面板现在可以折叠,让用户专注于搜索体验。最后,用户现在可以通过“导出”按钮,访问相关资源和分步指南,了解如何在下游应用程序中导出和应用智能体搜索。
利用新工作台工具增强和简化搜索相关性调优
此次发布为搜索相关性工作台带来了多个新工具和用户体验增强。一个强大的新功能是计划实验——现在你可以直接从用户界面设置实验计划,这对于持续的相关性调优非常有帮助。可以每晚、每周或每月运行测试,以了解搜索质量随时间的变化。单查询比较工具已增强,原生支持智能体搜索查询,允许你同时查看智能体生成的查询、智能体摘要和会话搜索功能以及搜索结果。另一个改进是全局唯一标识符(GUID)过滤,让你可以通过 ID 搜索实验、搜索配置、查询集和判断列表。这可以简化导航,特别是当你使用了一段时间的搜索相关性工作台并积累了大量资产时。
可观测性、日志分析和安全分析
OpenSearch 3.3 为可观测性工具包引入了多项新增功能,包括一系列新的 PPL 命令和函数,以从数据中获取见解。此次发布进一步扩展了 OpenSearch 的 PPL 功能,增加了有用的新功能。
使用新的 PPL 函数和命令探索你的数据
OpenSearch 3.4 引入了 PPL 的图表命令,使你能够通过具有灵活分组选项的统计聚合,将查询结果转换为适合可视化的数据。该命令支持用于标准聚合的单字段分组和使用 OVER...BY 语法的双字段分组,其中第一个字段定义行,第二个字段定义可以旋转为列以进行二维可视化的类别。图表命令输出的结果格式适合在仪表板和可视化工具中使用。
此外,一个新 streamstats 命令在定义的窗口内增量聚合数据,随着每个事件的到来产生运行总计或计数等指标。通过在其窗口边界内逐步评估数据,此命令使用户能够在 PPL 查询中直接执行顺序和趋势敏感的分析。
此次发布还包括新的 multisearch 命令,允许你将多个搜索子搜索的结果组合到一个统一的结果集中,以及 replace 命令,允许你替换指定字段中的文本模式。新的 appendpipe 命令将子管道的结果追加到搜索结果中。与子搜索不同,子管道不会首先运行;相反,当搜索到达 appendpipe 命令时,子管道才会运行。
此次发布还包括两个新函数:mvindex 函数使用开始和可选的结束索引值返回多值数组的子集,而 mvdedupeval 函数使用户能够从多值数组中删除重复值。
成本、性能和可扩展性
此次发布包括旨在提高 OpenSearch 集群成本效率、性能和可扩展性的更新。
使用 Lucene 批量收集 API 加速聚合工作负载
OpenSearch 已将 Lucene 的新批量收集 API 集成到聚合中,在几个关键的分析操作(包括基数、直方图和一系列统计聚合)中,性能提升了 5% 到 40%。批量收集 API 通过减少每个文档的收集开销来优化聚合执行。以前,每个文档收集都需要一个虚拟方法调用,产生不必要的计算开销。新的批量收集方法通过批处理操作更高效地处理文档,从而在聚合执行期间分摊这些虚拟调用的性能影响。欢迎社区贡献和反馈;请参阅元问题以加入讨论。
改进百分位数和矩阵统计聚合的延迟
此次发布包括针对聚合工作负载的额外性能优化,包括对百分位数聚合的更改。通过将之前的 AVLTreeDigest 实现替换为 MergingDigest 实现,高基数字段的百分位数聚合可以看到约 2 倍的性能提升,而低基数字段可能看到高达 30 倍的提升。此外,矩阵统计聚合的简化带来了高达 5 倍的性能提升。
部署 gRPC,支持扩展的查询和批量请求改进
在 OpenSearch 3.4 中,gRPC Search API 获得了额外的功能,增加了对新查询类型的支持,包括 ConstantScoreQuery、FuzzyQuery、MatchBoolPrefixQuery、MatchPhrasePrefix、PrefixQuery 和 MatchQuery。此次发布还包括对 gRPC 批量请求的改进,支持 CBOR/SMILE/YAML 文档格式。
更多详情可查看发布说明。