开始

待合并的段集合

OneMerge

作用(apply)删除信息

DocValues信息

写入到磁盘

初始化一个新段

更新待合并的段集合

OneMerge

获取SegmentReader

的集合MergeReader

生成SegmentMerger

执行索引文件的合并

设置新段包含的

索引文件名

生成复合索引文件

新段对应的索引文件.si写入磁盘

生成IndexReaderWarmer

提交合并

调用钩子函数

完成合并后的工作

更新pendingMerges

结束

u50_seg0 u50_seg1
u51_seg0 u51_seg1
u52_seg0 u52_seg1
u53_seg0 u53_seg1
u54_seg0 u54_seg1 u54_seg2 u54_seg3 u54_seg4 u54_seg5
u55_seg0 u55_seg1
u56_seg0 u56_seg1
u57_seg0 u57_seg1
u58_seg0 u58_seg1
u59_seg0 u59_seg1

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

u64_seg0 u64_seg1 u64_seg2 u64_seg3
u65_seg0 u65_seg1
u66_seg0 u66_seg1
u67_seg0 u67_seg1
u68_seg0 u68_seg1
u69_seg0 u69_seg1
u70_seg0 u70_seg1 u70_seg2 u70_seg3

synchronized

(IndexWriter)开始

synchronized

(IndexWriter)结束