开始

执行IndexSearcher

的search()方法

是否使用多线程?

重写Query

生成Weight

是否还有未查询的段?

生成BulkScorer

Collector处理查询结果

u9_seg0 u9_seg1
u10_seg0 u10_seg1
u11_seg0 u11_seg1
u12_seg0 u12_seg1
u13_seg0 u13_seg1 u13_seg2
u14_seg0 u14_seg1
u15_seg0 u15_seg1
u16_seg0 u16_seg1 u16_seg2 u16_seg3 u16_seg4 u16_seg5

第一个

查询的段

第二个

查询的段

第N个

查询的段

生成BulkScorer

生成BulkScorer

生成BulkScorer

Collector

处理查询结果

Collector

处理查询结果

Collector

处理查询结果

u26_seg0 u26_seg1
u27_seg0 u27_seg1
u28_seg0 u28_seg1
u29_seg0 u29_seg1
u30_seg0 u30_seg1
u31_seg0 u31_seg1 u31_seg2
u32_seg0 u32_seg1 u32_seg2
u33_seg0 u33_seg1 u33_seg2

合并查询结果

u35_seg0 u35_seg1 u35_seg2 u35_seg3
u36_seg0 u36_seg1 u36_seg2 u36_seg3
u37_seg0 u37_seg1 u37_seg2 u37_seg3

结束

u39_seg0 u39_seg1 u39_seg2
u40_seg0 u40_seg1 u40_seg2

线程

线程

线程

u48_seg0 u48_seg1