You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过_id读取Elastic文档是否会重置refresh_interval并强制重索引?

问题

Elasticsearch在写入调优章节建议增加Refresh Interval来提升写入效率。我们在文档摄入过程中可能执行如下读取操作:

GET /my-index/_doc/mydocumentid

也就是通过_id读取文档(而非普通搜索操作)。有说明称文档id像其他属性一样被加入Lucene索引,这是否意味着该读取操作仍会重置refresh_interval,强制重新索引,而非等待完整的refresh_interval周期?

答案

不会。通过_id执行的GET读取操作不会触发强制refresh,也不会打乱你设置的refresh_interval周期,具体原因如下:

  • Elasticsearch中,基于_id的文档查询是实时读取,默认情况下直接从内存缓冲区(未刷写到磁盘的待索引数据)或事务日志(translog)中获取最新版本的文档,完全不需要依赖Lucene已刷新到磁盘的索引段。
  • 虽然_id确实会被纳入Lucene索引,但这种主键查找不走全文搜索的查询路径——全文搜索需要扫描已刷新的索引段,而主键查找是直接定位文档的物理存储位置,绕开了需要等待refresh的搜索流程。
  • 只有执行搜索类操作(比如search、match查询等)且指定了refresh=wait_for参数,或者主动修改索引的refresh策略时,才会触发强制refresh或影响refresh_interval的执行逻辑。

内容的提问来源于stack exchange,提问作者Marvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:48:13