Elasticsearch 版本 8.15.0

edit

Elasticsearch 版本 8.15.0

edit

另请参阅 8.15 中的重大变更

已知问题

edit
  • 用于运行机器学习模型的pytorch_inference进程可能会消耗大量内存。 在可用内存有限的环境中,操作系统内存不足杀手会终止pytorch_inference进程以回收内存。这可能导致推理请求失败。 Elasticsearch会在pytorch_inference进程被终止后自动重启,最多在24小时内重启四次。(问题:#110530
  • time_seriescategorize_text聚合下的管道聚合永远不会返回(问题:#111679
  • 如果[bootstrap.memory_lock设置为true](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration-memory.html#bootstrap-memory_lock),Elasticsearch将无法在Windows机器上启动。 可以降级到早期版本,升级到8.15.1,或者按照手册中的建议完全禁用交换而不是使用内存锁定功能(问题:#111847
  • 批量API响应中的took字段不正确,可能非常大。假设此值将在特定范围内(例如,它适合32位有符号整数)的客户端可能会遇到错误(问题:#111854
  • 如果使用xpack.security.authc.realms.*.files.role_mapping配置选项配置自定义角色映射,Elasticsearch将无法启动。作为解决方法,可以使用REST API配置自定义角色映射(问题:#112503
  • ES|QL查询可能导致节点因内存不足错误而崩溃,当:

    • 多个索引匹配查询模式
    • 这些索引有许多冲突的字段映射
    • 许多这些字段都包含在请求中。 这些问题消耗堆内存,增加了OOM错误的可能性。(问题:#111964, #111358)。 在Kibana中,当使用Discover或向仪表板添加字段统计面板时,您可能会间接执行这些查询。

      要解决此问题,您有多种选择:

    • 降级到早期版本
    • 在发布后升级到8.15.2
    • 按照说明在Kibana中禁用ES|QL查询
    • 在Discover中将默认数据视图更改为较小的索引集和/或具有较少映射冲突的索引。
  • 合成源错误。合成源可能在运行时无法生成_source,导致get API失败或搜索API部分失败。结果是受影响的文档无法检索_source。没有解决方法,唯一的选项是在发布后升级到8.15.2。

    如果你使用合成源,那么如果以下情况为真,你可能会受到这个错误的影响: 如果你拥有的字段数量超过了index.mapping.total_fields.limit设置所允许的数量。 如果你使用动态映射并且启用了index.mapping.total_fields.ignore_dynamic_beyond_limit设置。

重大变更

edit
Cluster Coordination
  • ?timeout=-1 解释为无限确认超时 #107675
Inference API
  • model_id 替换为 inference_id 在 GET 推理 API #111366
Rollup
  • 禁止在没有汇总使用的集群中创建新的汇总作业 #108624 (问题: #108381)
Search
  • skip_unavailable远程集群设置的默认值更改为true #105792

Bug 修复

edit
Aggregations
  • 不要在减少过程中对 InternalDateHistogramInternalHistogram 中的 ReduceContext#consumeBucketsAndMaybeBreak 进行采样 #110186
  • 修复 Significant Terms 中的 ClassCastException #108429 (问题: #108427)
  • 当基数仅低于分片大小时,并发运行术语 #110369 (问题: #105505)
Allocation
  • 修复杂项分配API超时问题 #109241
  • 修复分配解释API中的超时问题 #109240
Analysis
  • 唯一令牌过滤器的正确位置 #109395
Authentication
  • 在WWW-Authenticate响应头中的charset参数前添加逗号 #110906
  • 如果users_roles文件不存在,避免NPE #109606
  • 改进security-crypto线程池溢出处理 #111369
Authorization
  • 修复security.put_privileges规范中的尾部斜杠 #110177
  • 修复基于集群状态的角色映射未从磁盘恢复 #109167
  • 正确处理IndicesRequest.SingleIndexNoWildcards请求中的不匹配远程集群通配符 #109185
Autoscaling
  • 在自动扩展API中公开?master_timeout #108759
CRUD
  • 在复制后操作失败后更新检查点 #109908
Cluster Coordination
  • 在通用线程池上反序列化发布请求 #108814 (问题: #106352)
  • 如果被阻塞则失败集群状态API #109618 (问题: #107503)
  • LeaderChecker中使用scheduleUnlessShuttingDown #108643 (问题: #108642)
Data streams
  • Apm-data: 为 metricset.interval 设置具体值 #109043
  • Ecs@mappings: 缩小 ecs_geo_point 的范围 #108349 (问题: #108338)
  • 在保留验证中包含组件模板 #109779
Distributed
  • 将还原快照任务关联到父挂载任务 #108705 (问题: #105830)
  • 不要在并发完成时检测 PlainActionFuture 死锁 #110361 (问题: #110181, #110360)
  • 处理可空的 DocsStatsStoresStats #109196
Downsampling
  • 支持在降采样中将扁平化字段和多字段作为维度 #110066 (问题: #99297)
ES|QL
  • ESQL: 将 "substring" 函数更改为在空字符串上不返回 null #109174
  • ESQL: 修复 Join 引用 #109989
  • ESQL: 修复 LOOKUP 属性阴影 #109807 (问题: #109392)
  • ESQL: 修复 Max 双精度负数错误并添加 Max 和 Min 的测试 #110586
  • ESQL: 修复 IpPrefix 函数未正确处理 ByteRefs #109205 (问题: #109198)
  • ESQL: 修复函数的 equals hashCode #107947 (问题: #104393)
  • ESQL: 修复在 Project 下推时的变量阴影 #108360 (问题: #108008)
  • ESQL: 验证唯一的计划属性名称 #110488 (问题: #110541)
  • ESQL: 从反引号改为引号 #108395
  • ESQL: 使命名参数对象真正按请求处理 #110046 (问题: #110028)
  • ES|QL: 修复覆盖输入的 DISSECT #110201 (问题: #110184)
  • ES|QL: 将查询深度限制为 500 层 #108089 (问题: #107752)
  • ES|QL: 将最大表达式深度减少到 400 #111186 (问题: #109846)
  • 修复 ST_DISTANCE Lucene 下推复杂谓词 #110391 (问题: #110349)
  • 修复缺少字段时 MV_EXPAND 的 ClassCastException #110096 (问题: #109974)
  • 修复 STATS 分组键中类型转换的联合类型错误 #110476 (问题: #109922, #110477)
  • 修复多个同名列的联合类型问题 #110793 (问题: #110490, #109916)
  • [ESQL] Count_distinct(_source) 应返回 400 #110824
  • [ESQL] 修复大数值负数的解析 #110665 (问题: #104323)
  • [ESQL] 迁移 SimplifyComparisonArithmetics 优化 #109256 (问题: #108388, #108743)
Engine
Highlighting
  • 修复了普通高亮器返回不完整片段的问题 #110707
ILM+SLM
  • 允许 read_slm 调用 GET /_slm/status #108333
Indices APIs
  • 为每个NodesDataTiersUsageTransport创建一个新的NodeRequest,参考#108379
Infra/Core
  • 在从8.13之前的版本升级后,添加一个集群监听器以修复缺失的节点功能 #110710 (问题: #109254)
  • 在解析ISO8601时区偏移值时添加边界检查 #108672
  • 修复原生预分配以实际运行 #110851
  • 忽略额外的cpu.stat字段 #108019 (问题: #107983)
  • 在多个日期时间解析发生错误时指定解析索引 #108607
Infra/Metrics
  • 提供带有 MapperService 的文档大小报告器 #109794
Infra/Node Lifecycle
  • 在get-shutdown API上公开?master_timeout #108886
  • 修复put-shutdown请求的序列化 #107862 (问题: #107857)
  • 支持在节点关闭时无限期等待搜索任务完成 #107426
Infra/REST API
  • 为REST API规范添加一些缺失的超时参数 #108761
  • 考虑所有端点都支持error_trace #109613 (问题: #109612)
Ingest Node
  • 修复带有前导非ASCII字符的Dissect #111184
  • 修复在空段响应时的丰富策略运行器异常处理 #111290
  • GeoIP任务应等待更长时间以获取主节点 #108410
  • GeoIpDownloader::cleanDatabases中移除Stream::peek的使用 #110666
  • 如果ignore_missing_pipeline,模拟应成功 #108106 (问题: #107314)
Machine Learning
  • 允许在摄取中引用时删除ELSER推理服务 #108146
  • 避免InferenceRunner死锁 #109551
  • 正确处理_cat训练模型API和使用统计中的重复模型ID #109126
  • 如果无法获取叶子读取器上下文,请勿使用全局序数策略 #108459
  • 修复训练模型分配更新器中的NPE #108942
  • 修复序列化推理删除响应 #109384
  • 修复“作用域后使用堆栈”内存错误 #2673
  • 修复ml.get_categories规范中的尾部斜杠 #110146
  • 处理推理抛出的任何异常 #2680
  • 增加批量请求的响应大小限制 #110112
  • 将请求卸载到通用线程池 #109104 (问题: #109100)
  • 传播准确的部署超时 #109534 (问题: #109407)
  • 重构TextEmbeddingResults以使用基元而非对象 #108161
  • QuestionAnsweringConfig中要求问题为非空 #107972
  • 启动训练模型部署API请求查询参数现在覆盖主体参数 #109487
  • 在删除训练模型时抑制摄取管道的弃用警告 #108679 (问题: #105004)
  • 在AD结果索引上使用默认的translog持久性 #108999
  • 对内部推理服务使用多节点路由操作 #109358
  • [推理API] 在RateLimitSettings#of中提取可选的长整型而非整型 #108602
  • [推理API] 修复推理删除端点响应的序列化 #110431
  • [推理API] 在推理API中用inference_id替换model_id,除非存储时使用 #111366
Mapping
  • 修复处理范围字段中的空值时的偏移错误 #107977 (问题: #107282)
  • 限制可以创建的同义词规则数量 #109981 (问题: #108785)
  • 在嵌套映射器构建器上下文创建过程中传播映射器构建器上下文标志 #109963
  • DenseVectorFieldMapper 修复拼写错误 #108065
Network
  • 当连接关闭时,为失败的请求使用适当的执行器 #109236 (问题: #109225)
  • NoSuchRemoteClusterException 在配置远程时不应该被抛出 #107435 (问题: #107381)
Packaging
  • libvec.so 上的 lintian 误报添加覆盖 #108521 (问题: #108514)
Ranking
  • 修复重新排序器响应中的分数计数验证 #111424 (问题: #111202)
Rollup
  • 修复两个rollup规范中的尾部斜杠 #110176
Search
  • 将分数从RankDoc添加到SearchHit #108870
  • 更好地处理带有LTR的多重rescorer子句 #109071
  • 修正连接查询的分析 #108122 (问题: #108116)
  • 修复DecayFunctions'toString #107415 (问题: #100870)
  • 修复折叠搜索结果中的泄漏 #110927
  • 将搜索/滚动上下文的释放分叉到GENERIC池 #109481
Security
  • 添加权限以确保对某些配置文件的安全访问 #107827
  • 添加权限以确保对由设置指定的某些配置文件的安全访问 #108895
  • 修复安全设置API中的陷阱超时问题 #109233
Snapshot/Restore
  • 在多仓库获取快照请求处理中更严格的失败处理 #107191
TSDB
  • 按时间范围对GetDataStreams API中的时间序列索引进行排序 #107967 (问题: #102088)
Transform
Vector Search
  • 确保向量相似性正确限制嵌套kNN返回的inner_hits #111363 (问题: #111093)
  • 确保在评分标量点积时返回非负分数 #108522
Watcher
  • 避免在 TickerScheduleTriggerEngine 暂停时运行 watch 作业 #110061 (问题: #105933)

弃用

edit
ILM+SLM
  • 弃用使用 slm 权限来访问 ilm #110540
Infra/Settings
  • ParseHeapRatioOrDeprecatedByteSizeValue 用于 indices.breaker.total.limit #110236
Machine Learning
  • 弃用 text_expansionweighted_tokens 查询 #109880

增强功能

edit
Aggregations
  • Aggs: 脚本化度量允许列表 #109444
  • 为低基数数值项聚合启用段间并发 #108306
  • 仅当聚合器中有实际值时增加大数组的大小 #107764
  • 仅当聚合器中有实际值时增加大数组的大小(分析模块) #107813
  • 优化 BinaryRangeAggregator 以处理单值字段 #108016
  • 优化单值字段的基数聚合 #107892
  • 优化单值字段的复合聚合 #107897
  • 优化单值字段的一些度量聚合 #107832
  • 优化单值字段的直方图聚合 #107893
  • 优化单值字段的多项聚合 #107937
  • 优化单值字段的项聚合 #107930
  • 加快收集零文档字符串项的速度 #110922
Allocation
Application
  • 添加创建或更新查询规则API调用 #109042
  • 重命名规则查询并添加对多个规则集的支持 #108831
  • 支持TopN的多个关联组 #108409 (问题: #108018)
  • [连接器API] 更改UpdateConnectorFiltering API以获得更好的默认值 #108612
Authentication
  • 公开API密钥缓存指标 #109078
Authorization
  • 集群状态角色映射器文件设置服务 #107886
  • 基于集群状态的安全角色映射器 #107410
  • 引入角色描述字段 #107088
  • [Osquery] 扩展 kibana_system 角色以访问新的 osquery_manager 索引 #108849
Data streams
  • 将metrics@custom组件模板添加到metrics--索引模板 #109540 (问题: #109475)
  • Apm-data: 默认启用插件 #108860
  • Apm-data: 忽略格式错误的字段和过多的动态字段 #108444
  • Apm-data: 提高默认管道的性能 #108396 (问题: #108290)
  • Apm-data: 提高索引的弹性 #108227
  • Apm-data: 提高优先级高于Fleet模板 #108885
  • Apm-data: 增加模板的版本 #108340
  • Apm-data: 为logs-apm.*数据流设置codec: best_compression #108862
  • 从metrics索引模板中移除default_field: message #110651
Distributed
  • 添加 wait_for_completion 参数到删除快照请求 #109462 (问题: #101300)
  • 改进提取 PlainActionFuture 结果的机制 #110019 (问题: #108125)
ES|QL
  • 为3个BytesRefs添加BlockHash #108165
  • 允许LuceneSourceOperator提前终止 #108820
  • 检查CsvTests所需功能是否存在 #108684
  • ESQL: 添加聚合节点级别减少 #107876
  • ESQL: 添加更多时间跨度单位 #108300
  • ESQL: 实现LOOKUP,一个“内联”的丰富 #107987 (问题: #107306)
  • ESQL: 将TopList重命名为Top #110347
  • ESQL: 联合类型支持 #107545 (问题: #100603)
  • ESQL: 添加REPEAT字符串函数 #109220
  • ES|QL 在计算引擎中添加原始浮点支持 #109746 (问题: #109178)
  • ES|QL 在计算引擎中添加所有聚合器的原始浮点变体 #109781
  • ES|QL: 向量化eval #109332
  • 使用Lucene圆交查询优化ST_DISTANCE过滤 #110102 (问题: #109972)
  • 优化序号分组中的单值 #108118
  • 重写不转换类型的类型转换函数 #108713 (问题: #107716)
  • ST_DISTANCE函数 #108764 (问题: #108212)
  • 在ESQL中支持指标计数器类型 #107877
  • [ESQL] CBRT函数 #108574
  • [ES|QL] 当算术运算符的另一侧是date_periodtime_duration时,将字符串转换为日期时间 #108455
  • [ES|QL] 在EsqlQueryRequest中支持命名和位置参数 #108421 (问题: #107029)
  • [ES|QL] weighted_avg #109993
Engine
  • 停止节点时丢弃分片关闭超时。#107978 (问题: #107938)
  • 在提交后更新事务日志writeLocationflushListener #109603
Geo
  • 优化单值字段的 GeoBoundsGeoCentroid 聚合 #107663
Health
  • HealthPeriodicLogger 中记录非绿色指标的日志 #108266
Highlighting
  • 统一高亮器以支持matched_fields #107640 (问题: #5172)
Infra/Core
  • 为THROTTLING分片添加分配解释输出 #109563
  • 创建ISO-8601日期时间的自定义解析器 #106486 (问题: #102063)
  • 扩展ISO8601日期时间解析器以指定禁止的字段,使其可用于更多格式 #108606
  • 添加用于Logstash的Elastic内部稳定桥接API #108171
Infra/Metrics
  • 添加自动分片APM指标 #107593
  • RestController添加请求指标以跟踪成功/失败(按状态码) #109957
  • 允许在解析完成或累积时报告RA指标 #108726
  • DocumentSizeReporter提供索引模式 #108947
  • 为带有脚本的更新返回noop实例DocSizeObserver #108856
Ingest Node
  • 在geoip处理器中添加continent_code支持 #108780 (问题: #85820)
  • 在geoip处理器中添加对连接类型数据库的支持 #108683
  • 在geoip处理器中添加对域名数据库的支持 #108639
  • 在geoip处理器中添加对ISP数据库的支持 #108651
  • 在enrich缓存统计信息中添加hits_time_in_millismisses_time_in_millis #107579
  • 在geoip处理器的企业数据库中添加user_type支持 #108687
  • 在geoip统计信息中添加人类可读的时间 #107647
  • 在摄取统计信息中包含文档大小信息 #107240 (问题: #106386)
  • 使摄取字节统计名称更具描述性 #108786
  • 即使值为0,也返回摄取字节统计信息 #108796
  • 在重新路由后测试管道运行 #108693
Logs
  • 引入一个节点设置,控制logs@settings组件模板中logs索引模式的激活 #109025 (问题: #108762)
  • 支持使用嵌套字段进行索引排序 #110251 (问题: #107349)
Machine Learning
  • 将Anthropic消息集成添加到推理API #109893
  • 添加sparse_vector查询 #108254
  • 将模型下载进度添加到下载任务状态 #107676
  • 为推理API添加速率限制支持 #107706
  • 将重新排序任务添加到Elasticsearch内部推理服务 #108452
  • 默认将HF服务设置为余弦相似度 #109967
  • GA更新训练模型操作 #108868
  • 处理“JSON内存分配器字节”字段 #109653
  • 推理处理器:当所有字段缺失时跳过推理 #108131
  • 将“在..处没有统计信息”消息记录为警告 #2684
  • 优化单值字段的频繁项集聚合 #108130
  • 句子分块器 #110334
  • [推理API] 将Amazon Bedrock支持添加到推理API #110248
  • [推理API] 将Mistral嵌入支持添加到推理API #109194
  • [推理API] 在删除推理端点时检查相关管道 #109123
Mapping
  • 将忽略的字段值添加到合成源 #107567
  • 将FLS应用于IgnoredSourceFieldMapper的内容 #109931
  • 二进制字段默认启用索引模式的文档值… #107739 (问题: #107554)
  • 功能/带注释的文本存储默认值 #107922 (问题: #107734)
  • 在平展字段的合成源中处理ignore_above #110214
  • 如果需要,将关键字字段加入到备用合成源中 #110016
  • 当文档值…时,将数字字段加入到备用合成源中 #110160
  • 在合成源文档中反映最新更改 #109501
  • 使用dynamic覆盖存储对象字段的源 #108911
  • 存储嵌套对象的源 #108818
  • 当使用ignore_malformed时,支持geo_point的合成源 #109651
  • 当使用ignore_malformed时,支持scaled_floatunsigned_long的合成源 #109506
  • 当使用ignore_malformed时,支持日期字段的合成源 #109410
  • 在直方图字段中支持合成源与ignore_malformed一起使用 #109882
  • 跟踪对象数组的源 #108417 (问题: #90708)
  • 跟踪禁用对象的合成源 #108051
Network
  • 检测网络线程上的长时间运行任务 #109204
Ranking
  • RankBuilders启用分析,并为RRF添加测试 #109470
Relevance
  • [查询规则] 添加API调用以获取或删除规则集中的单个查询规则 #109554
  • [查询规则] 需要企业许可证才能使用查询规则 #109634
Search
  • 为x64上的int7添加AVX-512优化的向量距离函数 #109084
  • 添加SparseVectorStats #108793
  • 为顶级knn子句添加_name支持 #107645 (问题: #106254, #107448)
  • 为x64上的int7添加SIMD (AVX2)优化的向量距离函数 #108088
  • 为可搜索快照添加event.ingested字段的最小/最大范围到集群状态 #106252
  • 为索引段API添加每个字段的KNN向量格式 #107216
  • 在kuromoji分析插件中添加对hiragana_uppercase和katakana_uppercase分词过滤器的支持 #106553
  • 在rrf中添加对explain的支持 #108682
  • 允许使用字段折叠的重新评分器 #107779 (问题: #27243)
  • 将存储字段切换到ZSTD进行压缩 #103374
  • 限制前缀查询中的值 #108537 (问题: #108486)
  • 使密集向量字段类型可更新 #106591
  • 多值稀疏向量支持 #109007
Security
  • 添加批量删除角色API #110383
  • 远程集群 - API密钥安全模型 - 集群权限 #107493
Snapshot/Restore
  • 更密集的内存表示 ShardBlobsToDelete #109848
  • 在生成/注册时记录仓库UUID #109672
  • 使仓库分析API对非操作员可用 #110179 (问题: #100318)
  • 在S3指标中单独跟踪 RequestedRangeNotSatisfiedException #109657
Stats
  • DocsStats: 添加人类可读的字节大小 #109720
TSDB
  • 优化单值字段的time_series聚合 #107990
  • 支持在关键字维度上使用ignore_above #110337
Vector Search
  • dense_vector字段向painless添加汉明距离函数 #109359
  • 支持knn查询的k参数 #110233 (问题: #108473)

新功能

edit
Aggregations
  • 选择退出并行化的 scripted_metric #109597
Application
  • [Connector API] 添加声明同步作业端点 #109480
ES|QL
  • ESQL: 添加 ip_prefix 函数 #109070 (问题: #99064)
  • ESQL: 引入一个类型转换操作符, :: #107409
  • ESQL: top_list 聚合 #109386 (问题: #109213)
  • ESQL: 添加 Arrow 数据帧输出格式 #109873
  • 重新应用 "ESQL: 暴露 "_ignored" 元数据字段" #108871
Infra/REST API
  • 添加一个功能API来检查节点和集群功能 #106820
Ingest Node
  • 直接从提供商下载商业IP地理位置数据库 #110844
  • 将Redact处理器标记为正式发布 #110395
Logs
  • 作为技术预览引入日志索引模式 #108896 (问题: #108896)
Machine Learning
  • 为推理服务添加对Azure AI Studio嵌入和完成的支持。#108472
Mapping
  • 添加 semantic_text 字段类型和 semantic 查询 #110338
  • 为合成源添加通用回退实现 #108222
  • 通过回退实现为 geo_shape 添加合成源支持 #108881
  • 为二进制字段添加合成源支持 #107549
  • 默认启用回退合成源 #109370 (问题: #106460)
  • pointshape 启用回退合成源 #109312
  • token_count 启用回退合成源 #109044
  • 为带注释的文本字段实现合成源支持 #107735
  • 为范围字段实现合成源支持 #107081
  • 在回退合成源实现中支持数组 #108878
  • 当 ignore_malf… 时,为 aggregate_metric_double 支持合成源 #108746
Ranking
  • 添加文本相似度重排序检索器 #109813
Relevance
  • 将查询规则标记为GA #110004
Search
  • 为 dense_vector 添加新的 int4 量化 #109317
  • 添加 RankFeature 搜索阶段实现 #108538
  • _ignored 字段添加聚合支持 #101373 (问题: #59946)
  • 将 Lucene 版本更新到 9.11 #109219
Security
Transform
  • 引入 _transform/_node_stats API #107279
Vector Search
  • dense_vectors添加了新的bit element_type #110059

升级

edit
Infra/Plugins
  • 将ASM更新到9.7以用于插件扫描器 #108822 (问题: #108776)
Ingest Node
  • 将Tika依赖项升级到2.9.2 #108144
Network
Search
Security
  • 将bouncy castle(非fips)升级到1.78.1 #108223
Snapshot/Restore
  • 在模块中更新jackson版本:repository-azure #109717