.fdt 文件保存了原始的 field 信息
.fdx 文件保存了一些帮助读取 fdt 的索引信息
.fdm 文件保存了一些基本的元数据,也包括一些辅助读取 fdx 文件的信息。
IndexHeader 索引文件头 lucene 对于索引文件,会写一个文件头,来标识一些基本的数据。
CodecHeader: 一个编码的 Header.
Magic: 一个魔法数字,永远是:0x3fd76c17.
CodecName: 当前编码的名字,比如对于当前的 fdm 文件时:”Lucene85FieldsIndexMeta”
Version: 一个内部的版本号,不是 lucene 版本号哦。
SegmentID: 当前 Segment 的 ID, 随机生成的 16 位字符串
SegmentSuffix: 当前 Segment 的后缀
===============================================================
ChunSize 每个 Chunk 中的 doc 数量
Version 版本号
NumDocs: doc 数量的总数
BlockShift: 控制 chunk 信息写入时的分块,2 ^ blockShift 为一块。
totalChunks: 总共有多少个 chunk
ChunkDocsNumIndex: 存储每个 chunk 中 doc 数量的内容,在 fdx 文件中的起始偏移位置
================================================================
ChunksDocsNumMeta: fdx 文件中存储 Chunk 中 doc 数量,用到的一些元数据
在fdx文件中,存储每个 chunk 中的doc数量时,使用了DirectMonotonicWriter类来进行存储,这个类用来存储单调递增数组,能够进行一些压缩。
为了完成压缩的功能,需要一些数字进行辅助,就是下面这几位咯。
- Min : 通过编码计算的最小值
- AvgInc: 通过编码计算的平均斜率
- ChunDocsNumIndex: 从开始写入到现在,fdx 文件的偏移量
- BitRequired: 所有要写入的数字,最大需要多少位才能存储
===================================================================
ChunkStartIndex: 存储每个 chunk 数据起始位置数据的起始位置
==================================================================
ChunkStartPointMeta: 存储每个 chunk 数据起始位置的一些元数据
在储存每个 chunk 的数据在 fdx 文件中的起始位置的相关数据时,和上面的 chunk 内 doc 数量一样,做了一些压缩~
- Min : 通过编码计算的最小值 - AvgInc: 通过编码计算的平均斜率 - ChunDocsNumIndex: 从开始写入到现在,fdx 文件的偏移量 - BitRequired: 所有要写入的数字,最大需要多少位才能存储
=========================================================
StartPointEndPoint: 存储每个 chunk 数据起始位置的数据的结束位置。
MaxPoint: fdx 的最大写入位置
numDirtyChunks: 脏的 chunk 的数量,当 chunk 并没有到达数量,而是强行进行 finish, 那么相关的 chunk 和 doc 就是 dirty 的。这两个变量记录了一下相关的数量。
numDirtyDocs: 脏的 doc 的数量
footer: 索引文件的脚部