Lucene 索引文件的生成(八)之dim&&dii

在前面的文章中,我们介绍了在Lucene7.5.0中索引文件.dim&&.dii的数据结构,从本篇文章开始介绍其生成索引文件.dim&&.dii的内容,注意的是,由于是基于Lucene8.4.0来描述其生成过程,故如果出现跟Lucene7.5.0中不一致的地方会另外指出,最后建议先阅读下文章Bkd-Tree简单的了解下Lucene中点数据的使用。

  在文章索引文件的生成(一)之doc&&pay&&pos中,简单的介绍了生成索引文件.dim&&.dii的时机点,为了能更好的理解其生成过程,会首先介绍下在生成索引文件之前,Lucene是如何收集每篇文档的点数据信息(Point Value),随后在flush阶段,会根据收集到的信息生成索引文件.dim&&.dii。

收集文档的点数据信息

  在源码中,通过PointValuesWriter对象来实现文档的点数据的收集,并且具有相同域名的点数据使用同一个PointValuesWriter对象来收集,例如下图中添加三篇文档:

图1:

Lucene 索引文件的生成(八)之dim&&dii

  在图1中,由于第49行、50行、55行。60行、61行,添加了具有相同的域名“content”的点数据,故他们三个的点数据信息会使用同一个PointValuesWriter对象来收集,同理第51行、56行。

 

剩余内容看这里:https://www.amazingkoala.com.cn/Lucene/Index/2020/0329/128.html