OpenSearch 2.17版本发布

开源
0
0
# OpenSearch 2.17版本发布 OpenSearch是一个基于Lucene打造的分布式搜索引擎,具有Apache 2.0 License,它的前身是发起自2019年的open-distro-elasticsearch,在2021年独立成为一个全新的project并且重新命名为OpenSearch,旨在提供完全开源无需提供授权费用的,由开源社区共建的,面向搜索,日志,监控,安全,可观测性等场景的分布式引擎。 * OpenSearch 官方网站:[opensearch.org](https://opensearch.org/docs/latest/) * OpenSearch Github地址:[OpenSearch](https://github.com/opensearch-project/OpenSearch) * OpenSearch 论坛:[forum.opensearch.org](https://forum.opensearch.org/) OpenSearch 2.17 现已推出!您可以下载最新版本的 OpenSearch,探索令人兴奋的新功能和增强功能,这些功能和增强功能旨在提高[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail) (ML) 集成、可扩展性、成本效率和搜索性能。此版本包括重大更新,例如增强的 ML 推理搜索处理器、扩展的批处理功能、高级搜索优化等。请继续阅读以深入了解这些强大的新功能。您可以使用[OpenSearch Playground](https://playground.opensearch.org/app/home#/) 试用最新的版本,如需全面了解新功能,请查看[发布说明](https://github.com/opensearch-project/opensearch-build/blob/main/release-notes/opensearch-release-notes-2.17.0.md)。 ## 1. 向量数据库和生成式 AI OpenSearch 2.17 为 OpenSearch 的向量数据库和生成式 AI 功能添加了许多功能,以帮助加速应用程序开发并支持生成式 AI 工作负载。 ### 通过无缝磁盘优化向量搜索降低成本并提高效率 OpenSearch 2.17 引入了全新的基于磁盘的向量搜索功能,可显著降低向量工作负载的运营成本。此功能使用二进制量化(BQ),将内存使用量压缩了 32 倍。此功能可节省高达 70% 的成本,同时保持召回率不低于 0.9,p90 延迟低于 200 毫秒。基于磁盘的向量搜索功能的主要优势之一是其无缝的开箱即用(OOB)集成,无需复杂的预处理或训练步骤。通过优化内存使用量并降低计算开销,基于磁盘的向量搜索功能可帮助您高效管理大规模向量工作负载。 ### 使用字节向量编码减少内存使用量并提高性能 OpenSearch 的 Faiss 引擎现在支持字节向量编码。这种内存高效的编码技术可将内存使用量减少高达 75%,同时最大程度地降低召回率,使其适用于大规模工作负载。我们建议使用字节向量,尤其是当输入向量包含 -128 到 127 之间的值时。这种紧凑的表示形式可降低搜索延迟并提高索引吞吐量,从而加速您的流程。 ### 增强 Flow Framework 插件的安全性并简化更新 Flow Framework 插件现在支持高级用户级安全性。您现在可以使用后端角色根据角色配置对各个工作流的细粒度访问。2.17 版的新增功能reprovision 参数可帮助您更新和配置先前配置的模板。 ### 使用异步批量提取实现高效的大容量 ML 任务处理 OpenSearch 2.17 还引入了异步批量提取功能,让您可以触发批量推理作业、监控作业状态并在批处理完成后提取结果。这简化了大容量 ML 任务,例如为大型数据集生成嵌入并将其提取到 k-NN 索引中。 ### 根据您的用例自定义 ML 推理搜索响应处理器 OpenSearch 2.16 引入了 ML 推理搜索处理器,让您可以在执行搜索查询时运行模型预测。从 OpenSearch 2.17 开始,您可以选择在单个请求中对所有文档运行模型预测,也可以单独为每个文档运行模型预测,从而进一步增强搜索响应处理器。这项改进让您可以灵活地自定义 ML 推理搜索响应处理器,以满足您的特定用例。 ## 2. 搜索 OpenSearch 2.17 还提供了旨在帮助您提高搜索和查询性能的新功能。 ### 通过增强的并发段搜索设置和扩展的支持来优化搜索性能 自 OpenSearch 2.12 以来,并发段搜索已普遍可用。它支持两个调整参数:一个开/关和一个集群级别设置,后者指定每个请求的切片数(最大线程数)。通常,切片数越多,延迟就越低,但每个请求需要更多的处理能力。更具体的分析表明,某些请求类型(包括聚合和远程存储搜索)比其他请求类型从并发段搜索中受益更多。为了帮助您利用并发段搜索来获得正确的请求类型,OpenSearch 2.17 在索引和集群级别都引入了新的设置。这些设置以及可插入的决策逻辑可以更精细地控制哪些请求使用并发搜索。此版本还支持每个索引(而不是每个集群)的最大切片数设置。此外,我们扩展了并发段搜索以支持更多基于脚本的搜索请求,包括具有脚本和派生字段的复合聚合。 ### 使用高效的数值字段编码和roaring bitmap来增强查询性能 OpenSearch 从 1.0 版开始就提供了terms查询类型,通过包含包含指定值集合内的字段值的文档来过滤搜索。它一直支持terms查询,即根据文档 ID 从另一个索引中检索这些过滤值,本质上允许有限版本的跨索引连接。之前的限制是从查找索引中检索到的值的数量限制为数百个(或可能低于数千个)。在 OpenSearch 2.17 中,我们支持将数值字段编码为roaring bitmap。通过更有效地对值进行编码,搜索请求可以使用与一百万个文档匹配的存储过滤器,同时降低检索延迟并减少内存使用量。有关更多信息,请参阅[bitmap-filtering](https://opensearch.org/docs/latest/query-dsl/term/terms/#bitmap-filtering)。 ### 通过改进的多项查询规计划化查询性能 在 OpenSearch 2.12中,我们引入了针对关键字字段的多项查询的查询计划功能。这些包括range, terms, wildcard, prefix 和fuzzy查询。这些查询在索引上的评估成本往往更高,因为您首先需要收集该字段的所有匹配关键字词,然后收集与所有词匹配的所有文档。随着 2.12 版引入的变化,如果这些查询之一是涉及另一个与几个文档匹配的子句的连接词的一部分,您可以通过将多项查询作为与另一个子句匹配的文档的辅助过滤器来避免繁重的前期工作。不幸的是,我们看到一些由于成本估算错误而导致此查询规划选择了错误路径的案例。在我们努力改进成本估算的同时,我们在 2.17 版中默认恢复了 2.12 之前的行为。您可以在2.12-2.16版本中通过设置`search.keyword_index_or_doc_values_enabled` 为 `true` 来回复2.12 之前的行为。 ### 利用新技术加速计算密集型查询的搜索性能 作为我们不断努力提高搜索性能的一部分,我们推出了一组新的实验功能,旨在提高计算成本高昂的查询的性能。我们的近似框架带来了新技术,通过仅对查询中的相关文档进行评分来缩短长时间运行的查询。在 2.17 版中,第一个利用此框架的查询是没有其他子句的顶级范围查询。这些查询的基准测试结果显示,通过此优化,查询运行时间最多可提高 50 倍。要启用这些新的实验功能,请设置`opensearch.experimental.feature.approximate_point_range_query.enabled`为`true`。 ## 3. 可观测性和日志分析 OpenSearch 2.17扩展了 OpenSearch 的可观察性和日志分析功能。 ### 使用新的自定义跟踪源增强跟踪分析,实现高级过滤和跨集群支持 OpenSearch 2.17 引入了新的自定义跟踪源作为一项实验性功能。此新跟踪源基于 OpenTelemetry 架构,并包含一个重新设计的跟踪和服务概览页面,该页面提供跟踪元数据的高级过滤功能和优化的性能。新的实验性自定义跟踪源还将为索引名称中的通配符提供灵活性,并支持跨集群跟踪索引。 ### 利用灵活的数据源、先进的归纳方法和特定领域的规则实现增强的异常检测 随着 OpenSearch 2.17 版本的发布,我们为异常检测插件添加了以下增强功能: * 支持远程和多个数据源:异常检测仪表板现在支持远程索引选择,允许您除了本地索引之外,还可以从远程集群中选择索引。您可以选择任意数量的远程和本地索引,以实现数据分析的灵活性。 * 缺失数据的高级插补方法:为了解决数据流中的缺口,我们引入了新的插补方法,包括用零、以前的值或自定义值填充缺失值。这些选项有助于在存在缺失数据的情况下保持数据连续性并提高异常检测的准确性。 * 将 ML 模型与特定领域规则相结合:我们将 ML 模型与特定领域规则相结合,以提高预测精度。现在,您可以使用比率阈值或绝对值阈值,根据实际值和预期值之间的关系过滤异常。这样可以实现更符合您特定业务需求的定制异常检测。 ## 4. 易用性 ### 使用基于应用程序的配置模板简化索引创建,以优化性能和无缝集成 OpenSearch 2.17 引入了基于应用程序的配置模板作为一项实验性功能。如果启用此功能,您的集群将提供一组预定义的组件模板,可在根据您的用例创建索引和索引模板时使用。这些模板旨在优化各种用例(例如日志和指标)的性能,并与 OpenSearch 目录中定义的架构兼容,以进一步简化与可视化体验的端到端集成。此功能可通过新推出的opensearch-system-templates插件使用。 ## 5. 成本、性能和可扩展性 ### 通过集中操作和改进的数据分布来增强快照的可扩展性和弹性 在 OpenSearch 2.17 中,我们对快照进行了多项优化,使其更具可扩展性和弹性。对于启用了远程备份存储的集群,快照操作现在集中在集群主节点上,从而消除了与集群中其他节点通信的开销。对于非远程备份存储集群,我们增加了使用散列前缀将数据均匀分布到配置的快照存储的支持。这有助于避免快照存储节流问题。 ### 通过远程集群状态发布减少开销并提高效率 远程集群状态发布是 OpenSearch 2.15 中作为一项实验性功能引入的,现在已在 OpenSearch 2.17 中正式推出。启用此功能后,活动集群管理器节点会将集群状态上传到远程存储,然后通知跟随者节点从远程存储下载集群状态,而不是通过传输层发送。这减少了发布期间集群主节点上的内存、CPU 和通信开销。 ### 使用仅搜索副本分片增强性能并管理流量 OpenSearch 2.17 引入了在集群内实现索引和搜索隔离的实验性机制。我们添加了一个新的副本分片类型,仅用于服务搜索流量。该分片与_bulk写入路径隔离,并且不符合主分片资格。这些分片通过使用段复制以刷新间隔拉取新段来工作,并且与节点到节点和远程支持的复制源兼容。要试验此功能,请设置`opensearch.experimental.feature.read.write.split.enabled`为`true`。`opensearch.yml`启用设置后,您可以使用新`index.number_of_search_only_replicas`设置添加或删除分片。您可以选择使用新过滤器将分片分配给特定硬件`cluster.routing.allocation.search.replica.dedicated.include`。此功能仍处于积极开发中,我们希望收到您的反馈。
0
目录
关闭