1 IndexReader打开索引文件,读取并打开指向索引文件的流。
1.1.1、找到最新的segment_N文件
1.1.2、通过segment_N文件中保存的各个段的信息打开各个段
1.1.3、得到的IndexReader对象如下
2 将查询语句转换为查询对象Query对象树
2.1、创建Weight对象树,计算Term Weight
2.2、重写Query对象树
2.3、创建Weight对象树
2.4、计算Term Weight分数
2.5 创建Scorer及SumScorer对象树
3、进行倒排表合并
3.1、交集ConjunctionScorer(+A +B)
3.2、并集DisjunctionSumScorer(A OR B)
3.4、ReqOptSumScorer(+A B)
4、收集文档结果集合及计算打分
4.1、创建结果文档收集器
4.2、收集文档号
4.3、打分计算
4.4、返回打分最高的N篇文档
5、Lucene如何在搜索阶段读取索引信息
5.1、读取词典信息
5.2、读取倒排表信息