在前面的文章中,我们介绍了构建BKD树的节点值(node value)
的流程,其中叶子节点的信息被写入到了索引文件.dim中,本文开始的内容将会介绍将内部节点(非叶节点)的信息写入到索引文件.dim,为了便于下文的介绍,先给出生成索引文件.dim&&.dii的流程图:
图1:
构建BKD树的节点元数据(node metadata)
在图1的流程点构建BKD树的节点元数据(node metadata)
中,即将内部节点的信息写入到索引文件.dim的过程,该流程点对应的是源码 https://github.com/LuXugang/Lucene-7.5.0/blob/master/solr-8.4.0/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java 中的writeIndex(IndexOutput out, int countPerLeaf, long[] leafBlockFPs, byte[] splitPackedValues)方法。
看这里:https://www.amazingkoala.com.cn/Lucene/Index/2020/0424/134.html