开始

获取索引目录的索引文件锁

获取封装后的Directory

获取IndexCommit对应的StandardDirectoryReader

执行CREATE模式下

的工作

u5_seg0 u5_seg1
u6_seg0 u6_seg1
u7_seg0 u7_seg1
u8_seg0 u8_seg1 u8_seg2 u8_seg3
u9_seg0 u9_seg1
u10_seg0 u10_seg1 u10_seg2 u10_seg3

CREATE

CREATE_OR_APPEND

APPEND

索引目录中是否

已经存在旧的索引?

u15_seg0 u15_seg1 u15_seg2
u16_seg0 u16_seg1 u16_seg2

执行APPEND模式下

的工作

检查IndexSort合法性

生成对象BufferedUpdatesStream

生成对象DocumentsWriter

生成对象ReaderPool

生成对象IndexFileDeleter

更新SegmentInfos的

version

结束

u27_seg0 u27_seg1 u27_seg2 u27_seg3
u28_seg0 u28_seg1 u28_seg2 u28_seg3
u29_seg0 u29_seg1
u30_seg0 u30_seg1
u31_seg0 u31_seg1
u32_seg0 u32_seg1
u33_seg0 u33_seg1
u34_seg0 u34_seg1