elasticsearch版本改动
可能会造成fetch阶段耗时增加的原因
es在7.7.0调整了高亮选取策略。
-
原行为:高亮器(
UnifiedHighlighter)在处理keyword类型字段时,会对所有值(包括被忽略的无效值)生成高亮片段,导致不必要的性能开销。 -
修改内容:
- 跳过被忽略的
keyword字段值(如空字符串或不符合条件的值)的高亮计算。
- 跳过被忽略的
可能造成的影响
- 条件判断开销:新增的跳过逻辑可能在遍历大量文档时引入额外检查成本(尤其对低基数
keyword字段)。 - 高亮片段偏移量修正:严格过滤无效值后,高亮片段的偏移量计算可能更精确,但计算复杂度可能上升
lucnen8.5调整了压缩算法
并且升级了了lucene引擎
- 行为改动:增大了压缩块大小选择策略
-
可能造成的影响
- 更复杂的压缩块选择策略可能增加 CPU 开销(尤其对高频更新的热索引)。
- 解压延迟:若文档值字段(如
_source)体积较大,解压耗时可能上升。
Elasticsearch version 7.7.0 | Elasticsearch Guide [7.7] | Elastic
issues.apache.org/jira/browse…
初步结论
目前尝试的调优无法降低fetch耗时,fetch耗时增加的准确原因正在定位,同时7.6.2版本scroll的bug正在积极复现中,持续创建scroll并删除,增加scroll计数器数 据到int最大值。然后尝试能否重置计数器,解决游标BUG。