开始

是否处理上一个

block(lastBLock)?

文档号集合

u3_seg0 u3_seg1
u4_seg0 u4_seg1

当前block(currentBlock)中的

文档数量是否大于4096?

使用short类型数组

buffer存储文档号

是否还有未处理的

文档号?

u8_seg0 u8_seg1
u9_seg0 u9_seg1
u10_seg0 u10_seg1

使用FixedBitSet对象

denseBuffer存储文档号

u13_seg0 u13_seg1 u13_seg2 u13_seg3 u13_seg4
u14_seg0 u14_seg1 u14_seg2 u14_seg3 u14_seg4
u15_seg0 u15_seg1 u15_seg2 u15_seg3 u15_seg4

结束

u18_seg0 u18_seg1 u18_seg2

处理稀疏的文档号集合

判断lastBlock中

文档号集合的稠密度

处理介于稀疏与稠密之间的文档号集合

处理稠密的文档号集合

u26_seg0 u26_seg1
u27_seg0 u27_seg1 u27_seg2 u27_seg3 u27_seg4
u28_seg0 u28_seg1 u28_seg2 u28_seg3 u28_seg4

u30_seg0 u30_seg1 u30_seg2 u30_seg3

添加到block数组中

u32_seg0 u32_seg1 u32_seg2 u32_seg3
u33_seg0 u33_seg1
u34_seg0 u34_seg1 u34_seg2 u34_seg3
u35_seg0 u35_seg1 u35_seg2 u35_seg3 u35_seg4 u35_seg5