Lucene 索引文件的读取(十五)之fdx&&fdt&&fdm

本文承接文章索引文件的读取(十四)之fdx&&fdt&&fdm,继续介绍剩余的内容。为了更好的理解下文中的内容,建议先阅读文章DirectMonotonicWriter&&Reader。下面先给出读取索引文件fdx&&fdt&&fdm的流程图。

读取索引文件fdx&&fdt&&fdm的流程图

图1:

读取一个Chunk

图2:

  当图1的流程点文档号是否在BlockState不满足条件后,需要根据文档号(段内文档号)重新找到文档号所属的chunk,大致分为四个步骤:

图3:

点击查看大图

  在介绍每个步骤之前, 我们先回顾下文章索引文件的读取(十四)之fdx&&fdt&&fdm中很重要的内容,即索引文件.fdm中的信息在生成reader阶段就已经被全量读取到内存的,而索引文件.fdx的NumDocBlock字段以及StartPointBlock字段则是off-heap方式读取。

步骤一

  执行步骤一的目的是找出一个index,该index描述的是第index个chunk,因为在文章索引文件的生成(二十四)之fdx&&fdt&&fdm我们说到,在flush阶段,每1024(2<< BlockShitf)个chunk就会生成一个NumDocsMeta,所以通过索引文件.fdm的TotalChunks得到chunk的数量以及二分法,随后通过下面的代码一判断出属于哪一个NumDocMeta,随后通过代码二判断出NumDocMeta这个block中的块内索引blockIndex

 

看这里:https://www.amazingkoala.com.cn/Lucene/Search/2020/1113/177.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值