数值索引IntPoint
对数值进行从小到大排序,从排序后的点数据中取前一半的点数据划为左子树(节点2),剩余的划为右子树(节点3)。继续对节点2的数据进行取前一半的点数据划为左子树(节点4)和右子树(节点5),同理对节点2的数据划为左子树(节点6)和右子树(节点7)。
右子树的数值比左子树大,进行查询过滤时,可以快速定位到数节点范围,再进行精准判断。
Bkd-Tree作为一种基于K-D-B-tree的索引结构,用来对多维度的点数据(multi-dimensional point data)集进行索引
https://www.amazingkoala.com.cn/Lucene/gongjulei/2019/0422/52.html
IndexSearcher ---> TopDocs searchAfter() -->Collector search()--->CollectorManager<TopScoreDocCollector, TopDocs> manager --> TopScoreDocCollector create() --> TopScoreDocCollector newCollector() --> search(List<LeafReaderContext> leaves) -->BulkScorer scorer = weight.bulkScorer(ctx) (获取召回结果)--> BulkScorer.score(leafCollector) -->Weight.scoreAll()(获取准确的召回结果) --> collector.collect(doc) --> TopScoreDocCollector.topDocs()