开始
是否已经处理过
当前删除信息?
结束
是
获得当前已经完成段合并的计数mergeGenStart
获得被作用的段集合infos
否
获得段集合中段信息集合SegmentState[ ]
synchronized(IndexWriter)开始
增加段集合中的
所有索引文件计数引用
infos
是否为空?
SegmentState[ ]
长度是否为0?
否
否
处理TermDeletes
处理QueryDeletes
处理DocValuesUpdates
处理完删除信息后的工作
再次处理DocValuesUpdates
是否为
段内删除信息?
synchronized(IndexWriter)结束
获得当前已经完成段合并的计数mergeGenCur
mergeGenStart是否跟
mergeGenCu相等?
synchronized(IndexWriter)开始
synchronized(IndexWriter)结束
处理FrozenBufferedUpdates
结束
是
是
否
是
处理FrozenBufferedUpdates
synchronized(IndexWriter)结束
是否正确的
处理删除信息?
否
是
否
是