欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Elasticsearch 索引文档的流程

Elasticsearch 索引文档的流程

2025/6/24 10:45:18 来源:https://blog.csdn.net/jiedaodezhuti/article/details/148845899  浏览:    关键词:Elasticsearch 索引文档的流程

        Elasticsearch 索引文档的流程是一个分布式、多阶段的过程,涉及客户端请求、路由、主副本同步及持久化等步骤,具体流程如下:

一、客户端请求与路由
 1.1 文档接收与路由计算‌
        客户端通过 REST API 发送文档写入请求,需指定索引名、文档 ID(可选)及文档内容。
Elasticsearch 根据文档 ID(或自定义 routing 值)哈希计算目标主分片位置。请求被转发到主分片所在的节点(协调节点或直接定位主节点)。
二、主分片写入与副本同步
2.1 主分片处理写入‌
        主分片节点接收到请求后:写入内存缓冲区‌:数据暂存至节点级内存缓冲区(Indexing Buffer)。
‌        记录事务日志‌:同时将操作写入分片级事务日志(Translog),确保宕机后可恢复。
2‌.2 副本分片同步‌
        主分片并行将写入请求转发至所有副本分片所在节点。
        副本分片执行相同操作(写入缓冲区 + 记录 Translog),并向主分片返回执行结果。
        所有副本分片确认成功后,主分片向客户端返回写入成功响应。
三、数据刷新与持久化
3‌.1 刷新(Refresh)生成可搜索段‌
        默认每秒触发一次刷新(可配置 refresh_interval):
        将内存缓冲区中的数据写入 Lucene 段文件(Segment)。
        新段文件打开后,文档立即可被搜索(近实时搜索)。
‌3.2 事务日志刷盘(Flush)‌
        周期性(默认 30 分钟)或 Translog 达到阈值时:
        执行 Lucene Commit,将内存中所有数据持久化到磁盘。
        清空 Translog 并创建新日志文件,释放磁盘空间。
四、段合并优化
‌        后台段合并(Merge)‌
        Lucene 自动合并多个小段文件为大段,提升查询性能。
        删除已标记删除的文档,回收磁盘空间。

阶段关键操作目标
请求路由计算文档所属主分片位置定位写入节点
主副同步写入内存缓冲区 + 记录 Translog保证数据冗余与一致性
刷新(Refresh)生成 Lucene 段文件实现近实时搜索
刷盘(Flush)持久化数据 + 清理 Translog确保数据安全存储
段合并(Merge)合并小段 + 删除失效文档优化查询性能与存储效率

        注‌:副本分片同步失败时,主分片会重试或报告错误;若主分片故障,副本分片将晋升为新主分片继续服务。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词