segments文件的格式: (段的信息)
int: =-1 查看文件是否是Lucene合法的文件格式
long: 版本号,每更新一次该文件将会将版本号加1
int: 用来命名新段
int: 段的数目
String + int 段的信息 String是段的名称 int是段中所含的doc数目
String + int 同上
.fnm的文件格式: (Field的信息)
int: Field的个数,最少为1,最少有一个Field("",false),在初始化的时候写入(暂时不知道原因); 名称为空字符串,未索引, 未 向 量化。readVInt()读取
String: byte String是 Field的名称 byte指示该Field 是否被索引,是否向量化 (值有:11,10,01)第一个1代表被索引,第二个代表被向量化
String: byte Field 同上
.fdx的文件格式:主要是提供对.fdt中存储的document的随即读取
long : 第一个document在.fdt文件中的位置
long: 第二个document在.fdt文件中的位置
.fdt的文件格式: .fdt文件存储了一系列document的信息
VInt: 该document中的isStored属性为true的域的个数
(VInt:) 如果该field的isStored属性为true则得到该field的fieldNumber,暂时不知道这个fieldNumber是怎么产生的,有什么用,初步估计是按照field创建的顺序产生的,每次再上一个field的fieldNumber基础上加1。
byte: 如果该field的isTokenized属性为true写入1否则写入false。
String: 该field的stringValue()值。
一个document结束,下面的数据将会开始一个新的document,每个新的document的开始点的文件位置都会在.fdx中有记载,便于随即访问