开始

待合并的段集合

OneMerge

作用(apply)删除信息

DocValues信息

写入到磁盘

初始化一个新段

更新待合并的段集合

OneMerge

获取SegmentReader

的集合MergeReader

生成SegmentMerger

执行索引文件的合并

设置新段包含的

索引文件名

生成复合索引文件

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

生成IndexReaderWarmer

提交合并

调用钩子函数

完成合并后的工作

更新pendingMerges

结束

u18_seg0 u18_seg1
u19_seg0 u19_seg1
u20_seg0 u20_seg1
u21_seg0 u21_seg1
u22_seg0 u22_seg1 u22_seg2 u22_seg3 u22_seg4 u22_seg5
u23_seg0 u23_seg1
u24_seg0 u24_seg1
u25_seg0 u25_seg1
u26_seg0 u26_seg1
u27_seg0 u27_seg1

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

u32_seg0 u32_seg1 u32_seg2 u32_seg3
u33_seg0 u33_seg1
u34_seg0 u34_seg1
u35_seg0 u35_seg1
u36_seg0 u36_seg1
u37_seg0 u37_seg1
u38_seg0 u38_seg1 u38_seg2 u38_seg3

synchronized

(IndexWriter)结束

synchronized

(IndexWriter)开始