Elasticsearch 版本 8.12.0

edit

Elasticsearch 版本 8.12.0

edit

另请参阅 8.12 中的重大变更

已知问题

edit
  • int8_hnsw 向量索引格式可能无法合并段并阻止文档索引(问题:#104617

    当使用 int8_hnsw 和默认的 confidence_interval(或任何小于 1.0confidence_interval)时,如果段中有已删除的文档,分位数可能无法构建并阻止合并。

此问题已在8.12.1版本中修复。

  • 当从8.11.4或更早版本升级集群时,如果您的集群包含非主节点,这些升级节点的新功能信息可能无法正确注册到主节点。这可能导致自8.12.0以来添加的一些新功能在升级后的集群上无法访问。如果您的集群运行在ECK 2.12.1及以上版本,这可能会导致升级完成时出现问题。要解决此问题,请在所有Elasticsearch节点升级后,对非主节点执行滚动重启。此问题已在8.15.0中修复。

重大变更

edit

8.12 版本没有重大变更

显著变化

edit

8.12中有一些显著的变化,您需要注意,但我们不认为是破坏性的,我们可能认为显著的变化包括

  • 对技术预览版功能的更改。
  • 对日志格式的更改。
  • 对非公开API的更改。
  • 修复关键错误的行为变化。

    授权
  • 从声明中修复了JWT主体 #101333

    ES|QL
  • [ES|QL] pow 函数始终返回 double #102183 (问题: #99055)

    基础设施/插件
  • 移除 Plugin.createComponents 方法,改为使用带有 PluginServices 对象的重载 #101457

Bug 修复

edit
Aggregations
  • 调整直方图的桶计数以迭代方式进行 #102172
  • 聚合错误代码 第1部分 #99963
  • 如果在重写后查询不匹配,则跳过全局序号加载 #102844
  • 在过滤器聚合中构建评分器时触发父级断路器 #102511
  • AbstractIndexOrdinalsFieldData 中从缓存加载时解包 ExecutionException #102476
Application
  • [Connector API] 修复解析器中可空工具提示字段的错误 #103427
  • [Connectors API] 修复创建新同步作业时的ClassCastException #103508
  • [Connectors API] 修复缺少TEXT DisplayType 枚举的错误 #103430
  • [Connectors API] 在ConnectorSyncJob解析器中正确处理可空字段 #103183
  • [Profiling] 仅在有益时并行查询 #103061
  • [Search Applications] 当模板渲染产生无效JSON时返回400响应 #101474
Authentication
  • 在链中的后续领域中传递格式错误的JWT #101660 (问题: #101367)
Authorization
  • 修复权限修改时的缓存失效问题 #102193
Data streams
  • 使用数据集大小而不是磁盘大小来获取数据流统计信息 #103342
Distributed
  • 搜索分片的活跃分片消息已修正 #102808 (问题: #101896)
  • ClusterStateAction#buildResponse 分派给执行器 #103435
  • 修复 SharedBlobCacheService.readMultiRegions 中的监听器 #101727
Downsampling
  • 将计数器字段属性复制到下采样索引 #103580 (问题: #103569)
  • 通过在出现一个或多个下采样持久任务失败时返回失败来修复下采样API #103615
EQL
  • 覆盖头/尾命令的边缘情况和数据类型覆盖 #101859 (问题: #101724)
  • 修复缺失事件查询时的NPE #103611 (问题: #103608)
  • 示例应检查聚合结果是否为空或null #103574
ES|QL
  • ESQL: 修复 to_degrees() 返回无穷大的问题 #103209 (问题: #102987)
  • ESQL: 修复带有可折叠表达式的 MV_EXPAND 的规划问题 #101385 (问题: #101118)
  • ESQL: 修复空字符串的罕见错误 #102350 (问题: #101969)
  • ESQL: 修复 KEEP * 之后的 MV_EXPAND 解析问题 #103339 (问题: #103331)
  • ESQL: 修复单值查询问题 #102317 (问题: #102298)
  • ESQL: 改进聚合的本地折叠 #103670
  • ESQL: 改进某些过滤器的下推 #103671
  • ESQL: 缩小转换函数中的捕获范围 #101788 (问题: #100820)
  • ESQL: 更新一些用户引起的异常的使用 #104046
  • ESQL: 移除 time_zone 请求参数 #102767 (问题: #102159)
  • ES|QL: 修复单值检测中的 NPE 问题 #103150 (问题: #103141)
  • ES|QL: 改进 mv_expand 中的解析错误管理 #102967 (问题: #102964)
  • 修复 MV_EXPAND 的布局问题 #102916 (问题: #102912)
  • 修复 ESQL 搜索上下文中的 now in millis 问题 #103474 (问题: #103455)
  • 修复重复聚合的规划问题 #102165 (问题: #102083)
  • 修复 PlanStreamOutput 的传输版本问题 #103758
  • AsyncOperator#isFinished 在失败时绝不能返回 true #104029
Engine
  • 修复 lastUnsafeSegmentGenerationForGets 以实现实时获取 #101700
Geo
ILM+SLM
  • 更高效地收集数据层使用统计信息 #102140 (问题: #100230)
Indices APIs
  • 修复模板模拟设置应用程序排序 #103024 (问题: #103008)
Infra/Core
Infra/Node Lifecycle
  • 在确认put-shutdown之前等待重新路由 #103251
Infra/Plugins
  • 在传输协议中使类名成为可选的 #99702 (问题: #98584)
Infra/Scripting
Infra/Settings
  • 报告非状态文件设置转换的完整堆栈跟踪 #101346
Ingest Node
  • DocumentParsingObserver发送一个永远不会为空的索引名称 #100862
License
  • 本地许可证验证失败时的错误日志 #102919
Machine Learning
  • pytorch_inference启动期间捕获异常 #103873
  • 在可能的情况下,获取模型快照时排除分位数 #103530
  • 修复空索引上的frequent_item_sets聚合 #103116 (问题: #103067)
  • 如果训练模型下载任务正在进行中,请在执行启动训练模型部署之前等待其完成 #102944
  • 在结果索引刷新之前,在作业关闭时持久化数据计数 #101147
  • 在数据馈送预览中保留响应头 #103923
  • 防止在重新平衡期间尝试访问不存在的节点信息 #103361
  • 防止模型分配计划器中的资源过度订阅 #100392
  • 在加载训练模型之前启动新的跟踪上下文 #103124
  • 在优雅关闭时等待模型结果 #103591 (问题: #103414)
Mapping
Monitoring
  • [监控] 恢复前不要获取集群状态 #100565
Network
  • 确保为RemoteClusterNodesAction使用正确的threadContext #101050
Ranking
Reindex
  • 在从远程重新索引时允许前缀索引命名 #96968 (问题: #89120)
Search
  • computeCommonPrefixLengthAndBuildHistogram 添加 JIT 编译器排除项 #103112
  • 检查脚本在渲染模板操作中生成正确的 json #101518 (问题: #101477)
  • 修复 CountOnlyQueryPhaseResultConsumer 中的 NPE 和空结果处理 #103203
  • 修复 OldLuceneVersions 中的格式字符串 #103185
  • 处理独立重写调用中的超时 #103546
  • 基于 Lucene 90 位置格式使用 PFOR 引入 Elasticsearch PostingFormat #103601 (问题: #103002)
  • 在启用合成源时恢复段间搜索并发性 #103690
  • 支持索引和索引别名名称中的复杂 datemath 表达式 #100646
Snapshot/Restore
  • 在读取完成后而不是之前减少SharedBytes.IO的引用计数 #102848
  • 更一致的快照删除日志消息 #101024
  • 在分片快照完成时重新路由 #101585 (问题: #101514)
  • 在读取和写入时恢复SharedBytes.IO的引用计数 #102843
TSDB
  • 在包装 DeferableBucketAggregator 时抛出 #101032
Transform
  • 在testTransformFeatureReset测试用例中添加一个断言 #100287
  • 将搜索上下文缺失异常视为可恢复的 #102602
  • 将任务取消异常视为可恢复的 #100828
  • 修复由_update API抛出的NPE #104051 (问题: #104048)
  • 在日志消息中记录堆栈跟踪以帮助调试 #101607
  • 将逗号分隔的源索引字符串拆分为单独的索引 #102811 (问题: #99564)
Vector Search
  • 不允许向量的幅度超出浮点数范围 #100519
Watcher
  • 正确记录观察者历史写入失败 #101802
  • 修复:观察者 REST API GET /_watcher/settings 现在包含产品头 #103003 (问题: #102928)

增强功能

edit
Aggregations
  • 在构建全局序数时检查真实内存断路器 #102462
  • 禁用采样器和多样化采样器的并发性 #102832
  • 禁用高基数字段的复合聚合的并行性 #102644
  • 为多术语聚合启用并发性 #102710
  • 为脚本化度量聚合启用并发性 #102461
  • 为术语聚合启用段间并发性 #101390
  • 将断路器触发计数导出为计数器指标 #101423
  • 引入字段数据缓存 ttl #102682
  • 聚合错误的状态代码,第 2 部分 #100368
  • 支持键控直方图 #101826 (问题: #100242)
Allocation
  • 添加更多所需的平衡统计信息 #102065
  • 添加不需要的分片计数 #101426
  • 通过APM公开对账指标 #102244
Application
  • 计算CO2和排放量及成本 #101979
  • 在自定义索引中考虑重复的堆栈跟踪 #102292
  • 将通用分析作为企业功能启用 #100333
  • 在火焰图响应中包含总计 #101126
  • 从自定义索引中检索堆栈跟踪事件 #102020
  • [分析] 尽早通知任务取消 #102740
  • [分析] 在状态API中报告文档是否存在 #102735
Authentication
  • 为全名和电子邮件添加LDAP用户元数据映射 #102925
  • 为kibana_system角色添加manage_enrich集群权限 #101682
Authorization
  • 移除用于分析的auto_configure权限 #101026
  • 使用BulkRequest存储应用程序权限 #102056
  • 在SAML smoketests中使用非弃用的SAML回调URL #99983 (问题: #99986)
  • 在测试中使用非弃用的SAML回调URL #99983 (问题: #99985)
CAT APIs
  • 默认在cat分配API中公开角色 #101753
CRUD
  • 缓存已解析的索引以进行mgets #101311
Data streams
  • 引入新的端点以公开数据流生命周期统计信息 #101845
  • 将日志数据流默认切换为搜索所有字段 #102456 (问题: #99872)
Distributed
  • 在S3客户端设置和EC2发现插件中添加对配置代理方案的支持 #102495 (问题: #101873)
  • 引入一个StreamOutput,用于计算写入流中的字节数 #102906
  • 通过指标API推送s3请求计数 #100383
  • 记录s3统计收集的操作目的 #100236
EQL
  • 为*QL添加错误日志记录 #101057
  • 使用eql查询过滤器进行露天请求 #103212
ES|QL
  • ESQL: 添加 profile 选项 #102713
  • ESQL: 在统计中为重复的聚合设置别名 #100642 (问题: #100544)
  • ESQL: 一次加载多个字段 #102192
  • ESQL: 按顺序加载存储字段 #102727
  • ESQL: 从父关键字字段加载文本字段 #102490 (问题: #102473)
  • ESQL: 使块引用计数 #100408
  • ESQL: 使 fieldcaps 调用更轻量 #102510 (问题: #101763, #102393)
  • ESQL: 在 BlockHash 实现中增加更多跟踪 #101488
  • ESQL: 新的遥测命令 #102937
  • ESQL: 共享常量空块 #102673
  • ESQL: 短路加载空文档值 #102434
  • ESQL: 支持 _source 元数据字段 #102391
  • ESQL: 跟踪从 lucene 发出的块 #101396
  • ESQL: 跟踪从 lucene 加载的值的内存 #101383
  • 使用序号读取单个文档的快速路径 #102902
  • 引入本地块工厂 #102901
  • 以不同方式加载 #101235
  • 跟踪 ESQL 丰富内存 #102184
  • AsyncOperator 中跟踪块 #102188
  • 跟踪聚合中间状态的块 #102562
  • 在哈希单个多值字段时跟踪块 #102612
  • 在 ESQL 丰富请求/响应中跟踪页面 #102190
Engine
  • 添加静态节点设置以设置最大合并段大小的默认值 #102208
Geo
  • 添加类型为 geo_shape 的运行时字段 #100492 (问题: #61299)
Health
  • HealthPeriodicLoggerS3RequestRetryStats 添加消息字段 #101989
  • HealthPeriodicLogger 消息添加非绿色指示器名称 #102245
ILM+SLM
  • 健康报告API在有数据可用时,不应为未分配的冷/冻结分片返回红色 #100776
  • 将fleet的内置ILM策略切换为使用.actions.rollover.max_primary_shard_size #99984 (问题: #99983)
Indices APIs
  • 将已执行的管道添加到批量API响应 #100031
  • 添加对将组件模板标记为已弃用的支持 #101148 (问题: #100992)
  • 允许通过自动取消分配分片来更新非动态索引设置 #101723
  • 根据新的命名约定重命名组件模板和管道 #99975
  • 在本地节点上运行 TransportGetAliasesAction #101815
Infra/CLI
  • 当设置node.processors时,设置ActiveProcessorCount #101846
Infra/Core
  • 添加用于异步计数器的apm api(总是增加) #102598
  • RestResponse中记录错误,无论error_trace参数如何 #101066(问题: #100884
Infra/Logging
  • 将状态码添加到 rest.suppressed 日志输出 #100990
Ingest Node
  • 弃用未使用的 enrich policy json 中的 elasticsearch_version 字段 #103013
  • 优化 MurmurHash3 #101202
Machine Learning
  • 接受单个或多个输入到 _inference #102075
  • 为推理功能添加基本遥测 #102877
  • 为机器学习模型和服务添加内部推理操作 #102731
  • 为训练模型添加前缀字符串选项 #102089
  • 更准确地估计部署训练模型所需的内存 #98874
  • 提高变化点聚合的峰值和下降检测的稳定性 #102637
  • _ml/info 响应中包含机器学习处理器限制 #101392
  • 从下载的词汇表中读取分数以用于XLM Roberta分词器 #101868
  • _inference API 中支持按任务类型获取所有模型 #102806
Mapping
  • 改进分析器重新加载日志消息 #102273
Monitoring
  • 将内存利用率Kibana指标添加到监控索引模板 #102810
  • 添加了 beat.stats.libbeat.pipeline.queue.max_events #102570
Network
  • 记录更详细的HTTP统计信息 #99852
Search
  • 向共享的blob缓存添加指标 #101577
  • 添加对塞尔维亚语分析器的支持 #100921
  • 为开放的pit添加对index_filter的支持 #102388 (问题: #99740)
  • 添加了针对非零频率条目的缓存驱逐的指标 #100570
  • 按字段排序时禁用段间并发 #101535
  • 在单个分片内启用查询阶段并行性 #101230 (问题: #80693)
  • 节点统计信息作为指标 #102248
  • 优化_count类型API请求 #102888
Security
  • 在Get/Query ApiKey API中公开invalidation字段 #102472
  • api_key.delete.interval设为动态设置 #102680
Snapshot/Restore
  • 在部分读取时失败S3仓库分析 #102840
  • 并行化过期索引删除 #100316 (问题: #61513)
  • 仓库分析:无竞争注册行为 #101185
  • 仓库分析:允许配置注册操作 #102051
  • 仓库分析:验证空注册 #102048
Stats
  • 在统计请求中引入includeShardsStats,以指示我们仅获取摘要 #100466 (问题: #99744)
  • 在NodesStatsRequest中设置includeShardsStats = false,其中调用者不使用分片级统计信息 #100938
Store
  • 添加用于添加主项生成监听器的方法 #100899
  • 允许在它们被持久化时执行多个周期性刷新 #102571
  • 将分片的主项传递给 Engine#addSegmentGenerationListener #99752
Transform
  • 为转换状态持久化重试实现指数退避 #102512 (问题: #102528)
  • 使计算检查点的任务超时 #101055
  • 在推导目标索引映射时,将源查询传递给 _field_caps(作为 index_filter)以提高性能 #102379
  • 将转换源查询作为 index_filter 传递给 open_point_in_time 请求 #102447 (问题: #101049)
  • 在检查点期间跳过与源查询不匹配的分片 #102138
Vector Search
  • 在knn搜索的profile输出中添加vector_operation_count #102032
  • 通过存储幅度和归一化向量来加快余弦相似度的计算 #99445

新功能

edit
Application
  • 启用连接器 API 作为技术预览 #102994
  • [行为分析] 分析集合使用数据流生命周期 (DSL) 而不是索引生命周期管理 (ILM) 进行数据保留管理。行为分析传统上使用 ILM 来管理数据保留。从 8.12.0 开始,这一情况将发生变化。在 8.12.0 之前创建的分析集合将继续使用其现有的 ILM 策略,但新的分析集合将使用 DSL 进行管理。#100033
Authentication
  • JWT realm 允许的主题的模式支持 #102426
Cluster Coordination
  • 添加一个节点特性加入屏障。这可以防止节点加入没有集群中所有特性的集群。这确保了当一个特性被集群中的所有节点支持后,该特性在未来将永远不会不被支持。这是版本加入屏障的对应功能,但针对特性 #101609
Data streams
  • 添加创建数据流故障存储的能力 #99134
ES|QL
  • ESQL: 从处理多值的单值函数中发出警告 #102417 (问题: #98743)
  • GEO_POINT 和 CARTESIAN_POINT 类型支持 #102177
Infra/Core
  • 创建新的集群状态API以查询集群上的功能 #100974
Ingest Node
  • 添加一个模拟摄取API #101409
Security
  • 允许使用JWT作为access_token授予API密钥 #101904
Vector Search
  • 为HNSW中的浮点向量添加字节量化 #102093
  • 将knn搜索设为查询 #98916

回归分析

edit
Infra/Core
  • 还原非语义化的 NodeInfo #102636

升级

edit
Search