Lucene 索引文件的读取(十二)之doc&&pos&&pay

在前几篇索引文件的读取的系列文章中,我们介绍索引文件tim&&tip的读取时机点时说到,在生成StandardDirectoryReader对象期间,会生成SegmentReader对象,该对象中的FieldsProducer信息描述了索引文件tim&&tip索引文件doc索引文件pos&&pay中所有域的索引信息,故我们从本篇文章开始介绍索引文件.doc、.pos、.pay的读取。

索引文件.doc的数据结构(Lucene 8.4.0)

  在文章索引文件的生成(三)之跳表SkipList索引文件的生成(四)之跳表SkipList中,我们基于Lucene 7.5.0介绍了跳表的数据结构,然而从Lucene 8.0.0开始,对跳表的数据的结构进行了调整,即对索引文件.doc的数据结构进行了调整,故在介绍索引文件.doc、.pos、.pay的读取之前,我们先介绍下调整目的以及调整后的数据结构。

为什么要调整

  本文仅仅给出两个链接,它们分别介绍了在elasticSearch跟Lucene两个层面的调整初衷,感兴趣的同学可以自行查阅。当然在随后的内容中也会提及这两篇文章中介绍的部分内容:

调整后的数据结构

  我们先直接给出两个版本的索引文件.doc的数据结构:

图1:

点击查看大图

图2:

点击查看大图

  比较图1跟图2的区别可以看出,Lucene 8.4.0中所有level的SkipDatum字段都增加了Impacts跟ImpactLength两个字段,其中ImpactLength字段用于描述Impacts字段的长度,使得在读取阶段,能通过ImpactLength确定Impacts字段的信息在索引文件.doc中的读取区间。

看这里:https://www.amazingkoala.com.cn/Lucene/Search/2020/0904/165.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值