开始

待合并的段集合

OneMerge

作用(apply)删除信息

DocValues信息

写入到磁盘

初始化一个新段

更新待合并的段集合

OneMerge

获取SegmentReader

的集合MergeReader

生成SegmentMerger

执行索引文件的合并

设置新段包含的

索引文件名

生成复合索引文件

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

生成IndexReaderWarmer

提交合并

调用钩子函数

完成合并后的工作

更新pendingMerges

结束

u158_seg0 u158_seg1
u159_seg0 u159_seg1
u160_seg0 u160_seg1
u161_seg0 u161_seg1
u162_seg0 u162_seg1 u162_seg2 u162_seg3 u162_seg4 u162_seg5
u163_seg0 u163_seg1
u164_seg0 u164_seg1
u165_seg0 u165_seg1
u166_seg0 u166_seg1
u167_seg0 u167_seg1

合并初始化

执行真正的合并

合并后的收尾工作

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

u175_seg0 u175_seg1 u175_seg2 u175_seg3
u176_seg0 u176_seg1
u177_seg0 u177_seg1
u178_seg0 u178_seg1
u179_seg0 u179_seg1
u180_seg0 u180_seg1
u181_seg0 u181_seg1 u181_seg2 u181_seg3

synchronized

(IndexWriter)开始

synchronized

(IndexWriter)结束