开始

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

获取封装后的Directory

获取IndexCommit对应的StandardDirectoryReader

执行CREATE模式下

的工作

u10_seg0 u10_seg1
u11_seg0 u11_seg1
u12_seg0 u12_seg1
u13_seg0 u13_seg1 u13_seg2 u13_seg3
u14_seg0 u14_seg1
u15_seg0 u15_seg1 u15_seg2 u15_seg3

CREATE

CREATE_OR_APPEND

APPEND

索引目录中是否

已经存在旧的索引?

u20_seg0 u20_seg1 u20_seg2
u21_seg0 u21_seg1 u21_seg2

执行APPEND模式下

的工作

检查IndexSort合法性

生成对象BufferedUpdatesStream

生成对象DocumentsWriter

生成对象ReaderPool

生成对象IndexFileDeleter

更新SegmentInfos的

version

结束

u32_seg0 u32_seg1 u32_seg2 u32_seg3
u33_seg0 u33_seg1 u33_seg2 u33_seg3
u34_seg0 u34_seg1
u35_seg0 u35_seg1
u36_seg0 u36_seg1
u37_seg0 u37_seg1
u38_seg0 u38_seg1
u39_seg0 u39_seg1