索引⽂件的读取(⼀)(Lucene 8.4.0)
本系列的⽂章会通过例⼦来介绍索引⽂件的读取,本篇⽂章先介绍索引⽂件.dim&&.dii的读取,为
了便于理解,请先阅读索引⽂件的⽣成(⼋)之dim&&dii⾄索引⽂件的⽣成(⼗四)之dim&&dii的⽂
章。
在⽣成SegmentReader期间,会⽣成PointsReader(PointsReader为抽象类,实现的⼦类就是
Lucene60PointsReader对象),它⽤来描述某个段中的点数据信息,下⾯先列出该对象包含的部分信
息:
final Map<Integer,BKDReader> readers = new HashMap<>();
在上述的Map对象中,存放的是不同域名的点数据信息,key为域的编号(FieldNumber),value
为域对应的点数据信息,通过读取索引⽂件.dii来初始化readers对象,BKDReader中包含的主要信息如
下所示:
numDataDims:点数据的维度数量
maxPointsInLeafNode:每个叶⼦节点中的最多包含的点数据数量
bytesPerDim:⼀个维度值占⽤的字节数量
numLeaves:叶⼦节点的数量
minPackedValue:MinPackedValue中每个维度的值都是所在维度的最⼩值
maxPackedValue:MinPackedValue中每个维度的值都是所在维度的最⼤值
minPackedValue跟maxPackedValue两者描述了BKD树中点数据的数值范围(⻅下⽂)
pointCount:当前域中的点数据的数量
docCount:包含当前域中的点数据域的⽂档数量。 ⼀篇⽂档中可以包含多个相同域名的点数据
域,但是docCount的计数为1
packedIndex:PackedIndex存放了⾮叶节点的信息
上述的字段在索引⽂件.dim中的位置如下所示:
图1:
评论0