Link Search Menu Expand Document Documentation Menu

1.x

迁移到 OpenSearch 和嵌套 JSON 对象数量的限制

当集群包含任何文档,且其中所有字段的嵌套 JSON 对象总数超过 10,000 个时,从 Elasticsearch OSS 6.8 版迁移到 OpenSearch 1.x 版将会失败。Elasticsearch 7.0 版引入了 index.mapping.nested_objects.limit 设置以防止内存不足错误,并将其默认值设为 10000。OpenSearch 从其创建之初就采用了此设置,并强制执行嵌套 JSON 对象的限制。然而,由于 Elasticsearch 6.8 版中没有此设置,也无法识别此设置,因此当任何文档中的嵌套 JSON 对象数量超过默认限制时,迁移到 OpenSearch 1.x 可能会导致不兼容问题,从而阻止 Elasticsearch 6.8 和 OpenSearch 1.x 之间的分片重定位。

因此,我们建议您在尝试从 Elasticsearch 6.8 迁移之前,评估您的数据是否符合这些限制。

2.0.0

移除映射类型参数

type 参数已从所有 OpenSearch API 端点中移除。相反,索引可以通过文档类型进行分类。有关更多详细信息,请参阅问题 #1940

废弃非包容性术语

非包容性术语在 2.x 版中已被废弃,并将在 OpenSearch 3.0 中永久移除。我们正在使用以下替代术语:

  • “白名单”(Whitelist)现改为“允许列表”(Allow list)
  • “黑名单”(Blacklist)现改为“拒绝列表”(Deny list)
  • “主节点”(Master)现改为“集群管理器”(Cluster Manager)

添加 OpenSearch 通知插件

在 OpenSearch 2.0 中,警报插件现在已与新的通知插件集成。如果您想继续在警报插件中使用通知操作,请安装新的后端插件 notifications-corenotifications。如果您想在 OpenSearch Dashboards 中管理通知,请使用新的 notificationsDashboards 插件。有关更多信息,请参阅 OpenSearch 文档页面上的通知

停止支持 JDK 8

Lucene 升级迫使 OpenSearch 放弃对 JDK 8 的支持。因此,Java 高级 REST 客户端不再支持 JDK 8。恢复 JDK 8 支持目前是一个 opensearch-java 提案 #156,并且需要从 Java 客户端中移除 OpenSearch core 作为依赖项(问题 #262)。

2.5.0

文本字段的通配符查询行为

OpenSearch 2.5 包含一个错误修复,它纠正了文本字段上 wildcard 查询的 case_insensitive 参数行为。因此,在错误修复之前忽略大小写敏感性并错误地返回结果的文本字段通配符查询将不会返回相同的结果。有关更多信息,请参阅问题 #8711

2.19.0

文本嵌入处理器中的嵌套值支持

text_embedding 处理器在评估 title_tmp:_ingest._value.title_embedding 等字段时,不再替换 _ingest._value 等嵌套值。相反,您必须直接将嵌套键指定为 books.title:title_embedding 才能获得所需的输出。有关更多信息,请参阅问题 #1243

3.0.0

JDK 要求

支持的最低 JDK 版本是 JDK 21。

系统索引访问

不再通过 REST API 提供对系统索引的访问。此功能自 OpenSearch 1.x 起已被弃用。有关更多信息,请参阅问题 #7936

文档 ID 长度限制

文档 ID 长度限制为 512 字节,现在所有 API(包括批量 API)都一致强制执行此限制。以前,批量 API 允许文档 ID 长度超过 512 字节。有关更多信息,请参阅问题 #6595

节点角色配置

使用环境变量配置空节点角色的问题已修复。现在,使用环境变量设置 node.roles= 可以正确地配置一个仅协调节点,这与 opensearch.yml 配置一致。有关更多信息,请参阅问题 #3412

JSON 处理限制

OpenSearch 中对 JSON 处理(使用 Jackson 库)引入了新的默认限制:

  • JSON 对象和数组的最大嵌套深度限制为 1,000 层。
  • JSON 属性名称的最大长度限制为 50,000 个单位(字节或字符,取决于输入源)。

这些限制有助于防止潜在的内存问题和拒绝服务攻击。有关更多信息,请参阅问题 #11278

嵌套查询深度

引入了一个新的 index.query.max_nested_depth 设置,其默认值为 20,最小值为 1,用于限制 nested 查询的最大嵌套级别数。有关更多信息,请参阅问题 #3268

线程池设置

以下已弃用的线程池设置已移除:

  • thread_pool.test.max_queue_size
  • thread_pool.test.min_queue_size 有关更多信息,请参阅问题 #2595

索引存储设置

作为 hybridfs 文件处理改进的一部分,index.store.hybrid.mmap.extensions 设置已移除。有关更多信息,请参阅拉取请求 #9392

Transport Nio 插件

transport-nio 插件已移除。Netty 仍然是节点到节点和客户端到服务器通信的标准网络框架。有关更多信息,请参阅问题 #16887

节点 API 响应格式

节点 API 响应中索引缓冲区值的格式已更改:

  • total_indexing_buffer_in_bytes 现在显示原始字节(例如,53687091)。
  • total_indexing_buffer 现在显示人类可读的格式(例如,51.1mb)。

有关更多信息,请参阅拉取请求 #17070

PathHierarchy 分词器

驼峰命名法的 PathHierarchy 分词器名称已弃用,取而代之的是蛇形命名法的 path_hierarchy。有关更多信息,请参阅拉取请求 #10894

安全插件

Blake2b 哈希实现现在正确使用盐参数,这将导致与以前版本相比的哈希值不同(但正确)。有关更多信息,请参阅拉取请求 #5089

k-NN 插件

以下已弃用的设置已从 k-NN 插件中移除:

  • knn.plugin.enabled 设置
  • index.knn.algo_param.ef_construction 索引设置
  • index.knn.algo_param.m 索引设置
  • index.knn.space_type 索引设置

NMSLIB 引擎现已废弃。我们建议改用 Faiss 或 Lucene 引擎。

有关更多信息,请参阅拉取请求 #2564

性能分析器插件

performance-analyzer-rca 代理已移除。我们建议过渡到 Telemetry 插件进行性能监控和分析。Telemetry 插件使用 OpenTelemetry 框架,允许与轻量级开源代理无缝集成,以便将性能指标发布到可观测性存储。有关更多信息,请参阅问题 #591

SQL 插件

  • OpenSearch 查询领域特定语言(DSL)响应格式已移除。
  • DELETE 语句支持已移除。
  • plugins.sql.delete.enabled 设置已移除。
  • 传统的 Spark 连接器模块已弃用。有关连接到 Spark 的信息,请参阅 async-query-core
  • 已弃用的 OpenDistro 端点和带有 opendistro 前缀的旧设置已移除。
  • plugins.sql.pagination.api 已移除,滚动 API 已弃用。分页现在默认为时间点。

有关更多信息,请参阅问题 #3248

OpenSearch Dashboards

  • 发现体验

    • discover:newExperience 设置已移除。
    • DataGrid 表格功能已移除。

    有关更多信息,请参阅拉取请求 #9511

  • 可视化:dashboards-visualizations 插件(包括甘特图可视化)已移除。我们建议改用:

    • Vega 可视化,用于灵活的可视化需求。
    • 追踪分析,用于与追踪相关的用例。

    有关更多信息,请参阅问题 #430

Dashboards 可观测性插件

dashboards-observability 中已移除旧版笔记本功能。主要变更包括:

  • 旧版笔记本(以前存储在 .opensearch-observability 索引中)不再受支持。
  • 仅支持存储在 .kibana 索引中(在 2.17 版中引入)的笔记本。
  • 您必须在升级到 3.0 版之前将笔记本迁移到新的存储系统。

有关更多信息,请参阅问题 #2350

可搜索快照节点角色

使用可搜索快照的节点必须具有 warm 节点角色。主要变更包括:

  • search 角色不再支持可搜索快照。
  • 处理可搜索快照分片的节点必须分配 warm 角色。
  • 如果您的集群使用可搜索快照,您必须在升级到 3.0 版之前更新节点角色配置。

有关更多信息,请参阅拉取请求 #17573

查询组

查询组已重命名为工作负载组。主要变更包括:

  • wlm/query_group 端点现在是 wlm/workload_group 端点。
  • API 响应将返回 workloadGroupID 而不是 queryGroupID
  • 所有工作负载管理集群设置现在都以 wlm.workload_group 为前缀。

有关更多信息,请参阅拉取请求 #9813

ML Commons 插件

  • CatIndexTool 已移除,取而代之的是 ListIndexTool