开始

是否已经处理过

当前删除信息?

结束

获得当前已经完成段合并的计数mergeGenStart

u41_seg0 u41_seg1

获得被作用的段集合infos

u43_seg0 u43_seg1

获得段集合中段信息集合SegmentState[ ]

synchronized(IndexWriter)开始

增加段集合中的

所有索引文件计数引用

infos

是否为空?

u49_seg0 u49_seg1
u50_seg0 u50_seg1

SegmentState[ ]

长度是否为0?

u52_seg0 u52_seg1

u54_seg0 u54_seg1

u56_seg0 u56_seg1

处理TermDeletes

处理QueryDeletes

处理DocValuesUpdates

处理完删除信息后的工作

再次处理DocValuesUpdates

是否为

段内删除信息?

u63_seg0 u63_seg1
u64_seg0 u64_seg1
u65_seg0 u65_seg1 u65_seg2 u65_seg3

synchronized(IndexWriter)结束

获得当前已经完成段合并的计数mergeGenCur

u68_seg0 u68_seg1
u69_seg0 u69_seg1
u70_seg0 u70_seg1
u71_seg0 u71_seg1

mergeGenStart是否跟

mergeGenCu相等?

u73_seg0 u73_seg1

synchronized(IndexWriter)开始

synchronized(IndexWriter)结束

处理FrozenBufferedUpdates

结束

u78_seg0 u78_seg1
u79_seg0 u79_seg1 u79_seg2 u79_seg3

处理FrozenBufferedUpdates

u85_seg0 u85_seg1
u86_seg0 u86_seg1 u86_seg2 u86_seg3 u86_seg4

synchronized(IndexWriter)结束

是否正确的

处理删除信息?

u89_seg0 u89_seg1

u91_seg0 u91_seg1 u91_seg2 u91_seg3 u91_seg4

u93_seg0 u93_seg1 u93_seg2
u94_seg0 u94_seg1 u94_seg2
u95_seg0 u95_seg1 u95_seg2 u95_seg3

u97_seg0 u97_seg1 u97_seg2