Elasticsearch 版本 8.7.0

edit

Elasticsearch 版本 8.7.0

edit

另请参阅 8.7 中的重大变更

已知问题

edit
  • 分片重新平衡可能会暂时导致集群不平衡

    从8.6.0开始,默认的分片再平衡算法将计算最终期望的平衡状态,然后进行分片移动以协调集群的当前状态与期望状态。然而,分片移动的顺序可能会偏向某些节点,导致集群在协调过程中暂时变得不平衡。一如既往,一旦节点达到磁盘水位线,它将不会接受任何额外的分片,但这种偏斜可能会导致节点比正常操作中更频繁地达到其磁盘水位线。一旦协调过程完成,集群将再次达到平衡。

    为避免此问题,请升级到8.8.0或更高版本。

重大变更

edit
Ingest Node
  • 使 JsonProcessor 更严格,以避免静默丢弃数据 #93179 (问题: #92898)
Indices APIs
  • Resolve index API 的实现已调整为使用与其他类似 API 相同的索引解析机制,增加了对 ignore_unavailableallow_no_indices 标志以及 _all 元索引的支持。如果没有匹配的索引,此 API 的早期版本将返回带有 200 OK HTTP 响应代码的空结果,但从 8.7.0 开始,默认情况下它会返回带有 404 Not Found HTTP 响应代码的 IndexNotFoundException。要恢复旧的行为,请添加查询参数 ?ignore_unavailable=true (#92820)。

Bug 修复

edit
Aggregations
  • 不要为空桶创建新的 DoubleHistogram 实例 #92547
  • 修复:不允许使用除字符串以外的映射键类型 #88686 (问题: #66057)
Allocation
  • 当预测不可用时,回退到实际的分片大小 #93461
  • 当集群状态未恢复时,跳过 DiskThresholdMonitor #93699
  • AllocationActionMultiListener 中抑制响应头 #93777 (问题: #93773)
Authentication
  • 正确地从领域中移除域名,当重写Authentication以兼容不支持域名的节点版本时 #93276
Authorization
  • 修复安全模块的表达式解析器,使其不会移除不可用但已授权的名称 #92625
CCR
  • 去重重型CCR存储库CS请求 #91398
CRUD
  • 避免在无状态的 Get/mGet 中出现 NPE #94164
  • 不在 TransportBulkAction 中刷新所有索引 #93417
Cluster Coordination
  • 延迟主任务失败通知直到提交 #92693 (问题: #92677)
Data streams
  • 允许在DataStreamAlias中的每个DataStream使用不同的过滤器 #92692 (问题: #92050)
Geo
  • 在跨集群矢量瓦片搜索中构建索引限定名称 #94574 (问题: #94557)
  • 使用球坐标检查 GeohexGrid 边界上的地理点 #92460
  • 修复在矢量瓦片中裁剪几何集合时的错误 #93562
Health
  • 在磁盘水位计算中考虑max_headroom #93157 (问题: #93155)
ILM+SLM
  • 允许 ILM 步骤过渡到阶段终端步骤 #91754
  • 避免在 ILMHistoryStore 中出现 BulkProcessor 死锁 #91238 (问题: #68468, #50440)
  • 修复了仅更改 SearchableSnapshotAction 中的 forceMerge 标志不会更新策略的问题 #93847
  • 防止 ILM 和 SLM 运行时状态被存储在快照中 #92252
Infra/CLI
  • 恢复将引导检查打印为错误 #93178 (问题: #93074)
Infra/Core
  • jdk.internal.reflect 权限添加到 es 代码库 #92387 (问题: #92356)
  • 仅通过抑制异常添加异常循环检查 #93944 (问题: #93943)
  • 确保一次性包装器释放其委托 #92928
  • 修复 InputStream#readAllBytesInputStreamIndexInput 上的问题 #92680
  • 修复带有冒号的 datemath 的索引解析器 #92973
  • 使 FilterStreamInput 不那么容易出错 #92422
Infra/Plugins
  • 确保插件初始化的顺序 #93882 (问题: #93851)
  • 修复 ClassReaders 中未关闭的目录流 #92890 (问题: #92866)
  • 更新插件扫描器使用的 asm 版本 #92784 (问题: #92782)
Infra/REST API
  • [Rest Api 兼容性] 使用参数格式化响应媒体类型 #92695
Infra/Scripting
  • 修复在数组类型上调用方法时的NPE #91713 (问题: #87562)
Infra/Settings
  • 修复ILM操作符设置的解析失败问题 #94477 (问题: #94465)
Ingest Node
  • 更好的摄取统计名称和类型 #93533 (问题: #80763)
  • 正确处理摄取失败的异常情况 #92455
  • 禁用ingest-attachment日志记录 #93878
  • 仅在需要时下载geoip数据库 #92335 (问题: #90673)
  • 将模拟调用转发到摄取节点 #92171
  • Grok返回重复模式名称的匹配列表 #92092 #92586 (问题: #92092)
  • 以最小的额外开销处理默认/请求管道和最终管道 #93329 (问题: #92843, #81244, #93118)
  • ingest-attachment模块tika依赖版本 #93755
  • 更准确的摄取统计总数 #91730 (问题: #91358)
  • 加快摄取geoip处理器速度 #92372
  • 加快摄取set和append处理器速度 #92395
Machine Learning
  • 如果未设置区域感知属性,则分配训练模型 #94128 (问题: #94123)
  • 修复启动数据馈送时的数据计数竞争条件 #93324 (问题: #93298)
  • 修复处理BERT和MPNet中的规范化时的分词错误 #92329
  • 当模型加载被取消时正确释放资源 #92204
  • 停止frequent_items聚合在存在超集时报告子集 #92239
  • 在摄取时使用长推理超时 #93731
Mapping
  • 修复无效日期的动态映射检测 #94115 (问题: #93888)
  • 源代码关键字字段没有长度检查 #93299 (问题: #9304)
Network
  • 在待处理的 #92546 期间延迟连接#onRemoved
  • 修复传输握手在TLS握手完成之前开始的问题 #90534 (问题: #77999)
  • 保护 NodeConnectionsService 免受陈旧连接的影响 #92558 (问题: #92029)
Recovery
  • 在恢复开始前禁用恢复监控 #93551 (问题: #93542)
  • 修复RemoteRecoveryHandler中的潜在泄漏 #91802
  • 对于完全挂载的可搜索快照,报告从快照恢复的文件 #92976
Rollup
  • 下采样未映射的文本字段 #94387 (问题: #94346)
  • 传播时间戳格式并将纳秒转换为毫秒 #94141 (问题: #94085)
  • 在失败时停止处理 TransportDownsampleAction #94624
  • 支持将直方图作为标签进行下采样 #93445 (问题: #93263)
Search
  • 为折叠字段上的排序字段添加空检查 #94546 (问题: #94407)
  • 当搜索包含注释和被注释的术语时,注释高亮器不匹配 #92920 (问题: #91944)
  • 在取消时清除字段能力索引响应 #93716 (问题: #93029)
  • 默认情况下不要在PIT中包含冻结索引 #94377
  • 修复在奇怪场景下由前缀查询抛出的NPE #94369
  • 修复_id字段获取问题 #94528 (问题: #94515)
  • 修复元数据_size在存储字段提取时的处理 #94483 (问题: #94468)
  • 修复ProfileWeight中缺少的matches覆盖 #92360
  • copy_to期间不应添加嵌套路径信息 #93340 (问题: #93117)
  • 在启动时使用所有分析事件 #92087
  • TermVectorsService中对未分词字段使用关键词分析器 #94518
  • [分析] 调整最后一个数据切片的处理 #94283
  • [分析] 确保响应只发送一次 #93692 (问题: #93691)
  • [分析] 处理响应处理错误 #93860
Snapshot/Restore
  • 修复当blobstore存储库包含意外文件时的未处理异常 #93914
  • 在GCS API的任何地方支持GCS代理 #92192 (问题: #91952)
Stats
  • 避免在 TBbNA 中捕获集群状态 #92255
TSDB
  • 修复稀疏_doc_count字段的合成_source #91769 (问题: #91731)
Task Management
  • 修复列表任务API中的上下文泄漏 #93431 (问题: #93428)
Transform
  • 将“sourceHasChanged”调用集成到故障处理和重试逻辑中 #92762 (问题: #92133)
Vector Search
  • 修复kNN搜索的maxScore计算 #93875
  • 修复kNN搜索匹配的解释 #93876

增强功能

edit
Aggregations
  • 使用领先的全局序数值源优化复合聚合 #92197
Allocation
  • 添加 forecasted_write_loadforecasted_shard_size_in_bytes 到端点 #92303
  • 通过内部端点公开层平衡统计信息 #92199
  • 引入 ShardRouting.Role #92668
  • 预验证节点移除 API(第 2 部分)#91256(问题:#87776
  • 使用 cluster_concurrent_rebalance=2 模拟移动 #93977
  • 不可提升的节点跳过复制和伙伴恢复 #93210
Authentication
  • 添加新的 token_type 设置到 JWT realm #91536
  • JWT realm - 初始支持访问令牌 #91781
  • JWT realm - 简化令牌主体计算 #92315
  • JWT realm - 添加对必需声明的支持 #92314
  • 支持自定义 PBKDF2 密码哈希 #92871
Authorization
  • 允许的索引匹配器支持嵌套的有限角色 #93306
  • Fleet 转换升级的额外 kibana_system 权限 #91499
  • 预授权子搜索传输操作 #91886
Cluster Coordination
  • 添加链接到故障排除文档 #92755 (问题: #92741)
  • 改进节点-{join,left} 日志记录以进行故障排除 #92742
  • 重复 cluster.initial_master_nodes 日志警告 #92744
EQL
  • EQL 示例:为每个键添加对多个样本的支持 #91783
Engine
  • InternalEngineCombinedDeletionPolicy 添加提交监听器 #92017
  • 为 Engine.IndexCommitListener 添加主项供应商 #92101
  • 调整索引中允许的删除百分比范围 #93188
  • 比较每个新提交添加的文件名列表 #92238
  • 设置固定的复合文件阈值为 1GB #92659
Geo
  • 向H3#hexRing添加方法以防止分配长数组 #92711
  • 添加方法以防止在H3 API的子导航期间分配长数组 #92099
  • 添加新的H3 API方法#h3ToNoChildrenIntersecting #91673
  • 在H3中,使用平面3D数学计算从距离和方位角出发的终点" #93084
  • 保护H3库免受整数溢出的影响 #92829
  • 减少H3#h3ToGeoBoundary中的对象分配数量 #91586
  • 通过使用FastMath实现来加速H3库的三角函数 #91839
Health
Indices APIs
  • 添加 ignore_missing_component_templates 配置选项 #92436 (问题: #92426)
Infra/CLI
  • 在安装时扫描稳定插件以查找命名组件 #92528
Infra/Core
  • 为JVM日志添加日志级别 #92382
  • 向fleet-actions添加新字段 rollout_duration_seconds #92640
  • 将就绪服务绑定到通配符地址 #91329 (问题: #90997)
  • 提供本地挂载的安全设置实现 #93392
Infra/Plugins
  • 在安装和加载时检查稳定插件版本 #91780
  • 带有设置的稳定插件示例 #92334
  • 将稳定插件作为合成模块加载 #91869
  • 稳定插件的设置API #91467
Infra/Scripting
  • 脚本:元数据 validateMetadata 优化 #93333
  • 短路 painless def 相等性 #92102
  • 使用原始类型而不是装箱/拆箱来迭代来自 defs 的原始数组 #92025
Ingest Node
  • 在DateProcessor中缓存解析器的创建 #92880
  • 使GeoIpProcessor的后端数据库实例可插拔 #93285
Machine Learning
  • 在异常解释中添加多模态分布的识别 #2440
  • 在频繁项中添加包含和排除值的功能 #92414
  • 当在滚动数据馈送中使用aggregate_metric_double时,提供更好的错误信息 #92232 (问题: #90592)
  • 在频繁项中实现扩展修剪以提高运行时性能 #92322
  • 使用全局序数提高frequent_items的性能 #93304
  • 提高异常检测结果的索引速度 #92417
  • 提高频繁项的运行时性能 #93255
  • 增加启动训练模型部署API的默认超时时间 #92328
  • 重置/删除作业API的可选功能,用于删除用户添加的注释 #91698 (问题: #74310)
  • 异步持久化数据计数和数据馈送时间统计 #93000
  • 移除PyTorch推理工作队列,现已在Elasticsearch中处理 #2456
  • 文本嵌入搜索 #93531
  • 将PyTorch升级到1.13.1版本 #2430
Mapping
  • 切换到Lucene的新IntField/LongField/FloatField/DoubleField #93165
Monitoring
  • 将kibana.stats.elasticsearch_client统计信息添加到监控索引模板中。#91508
  • 为es ingest metricset添加监控映射。#92950
Network
  • 在处理线程池上反序列化响应 #91367
Performance
  • 将向量距离评分添加到微基准测试 #92340
Query Languages
  • 引入参数化规则和执行器 #92428
Recovery
  • 使清理文件步骤可配置以进行副本的对等恢复 #92490
Search
  • 更高效地访问术语字典 #92269
  • rank_features 映射字段添加 term 查询支持 #93247
  • 为 knn 搜索子句添加新的 query_vector_builder 选项 #93331
  • 添加分析插件 #91640
  • 默认启用分析插件 #92787
  • 更并发地获取堆栈帧和可执行文件 #93559
  • 通过设置7个哈希函数来改善布隆过滤器的误报率 #93283
  • 增加 GET 线程池的线程数量 #92309
  • 在 ProfileWeight 中检测 Weight#count #85656 (问题: #85203)
  • 减少匹配所有位集的内存使用 #92777
  • 运行时字段可选择忽略脚本错误 #92380
  • 加快火焰图数据的检索速度 #93448
  • 支持检索内联堆栈帧 #92863
  • [分析] 减少 GC 压力 #93590
Security
  • 可配置的无效或过期API密钥的保留期 #92219
  • 记录API密钥失效的时间戳 #91873
Snapshot/Restore
  • 使 RecoveryPlannerService 可选 #92489
TSDB
  • 为tsdb索引中的_id字段启用布隆过滤器 #92115
  • 通过移除映射查找来提高降采样性能 #92494 (问题: #90226)
  • 小幅提升TSDB解析速度 #92276
  • 跳过不包含文档时间戳的段的重复检查 #92456
  • 在最后的情况下支持合成源中的fields #91595
Task Management
  • TransportGetTaskAction: 异步等待任务 #93375
  • TransportListTaskAction: 异步等待任务完成 #90977 (问题: #89564)
Transform
  • 从参数添加到Transform Start API #91116 (问题: #88646)
  • DateHistogramGroupSource中支持"offset"参数 #93203
  • 基于时间触发状态持久化 #93221
Vector Search
  • 允许为dense_vector字段值提供null #93388
  • 允许使用多个KNN搜索子句 #92118 (问题: #91187)
Watcher
  • 为Watcher的webhook操作添加发送附加标头的能力 #93426

新功能

edit
Distributed
  • 安全设置可以在无状态情况下回退到yml #91925
Geo
  • geo_shape 字段上的 Geohex 聚合 #91956 (问题: #90163)
  • 支持 geo_grid 摄取处理器 #93370 (问题: #92473)
Health
  • Health API 现已全面上线 #92879
  • [HealthAPI] 添加 size 参数,用于控制返回的受影响资源数量 #92399 (问题: #91930)
  • [HealthAPI] 添加对 FEATURE_STATE 受影响资源的支持 #92296 (问题: #91353)
Infra/Plugins
  • [Fleet] 添加文件和文件数据索引模板及ILM策略 #91413
Ingest Node
  • Redact Ingest Processor #92951
Machine Learning
  • 使 frequent_item_sets 聚合 GA #93421
  • 使本地推理普遍可用 #92213
TSDB
  • 添加 TSDB 速率聚合 #90447
  • 降采样 GA #92913
  • 将时间序列和速率(在计数器字段上)聚合作为技术预览版发布 #93546
  • 时间序列 (TSDS) GA #91519
Transform

升级

edit
Infra/Core
  • 将所有 Jackson 的使用对齐到 2.14.2 #93438
Ingest Node
  • 将tika升级到2.6.0 #92104
Network
  • 升级到 Netty 4.1.85 #91846
  • 升级到 Netty 4.1.86 #92587
Query Languages
  • 将 antlr 升级到 4.11.1 用于 ql、eql 和 sql #93238
Search
  • 升级到 Lucene 9.5.0 #93385
  • 升级到 lucene-9.5.0-snapshot-d19c3e2e0ed #92957
Snapshot/Restore
  • 将所有protobuf的使用对齐到3.21.9 #92123
  • 升级reactor netty版本 #92457
  • 将google-oauth-client整合到最新版本 #91722