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-core
和 notifications
。如果您想在 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
。