索引文件.fnm用来描述域信息(FieldInfo)
为了便于介绍.fnm中的各个字段,给出下面的例子
图1:
图2:
FieldsCount描述的是.fnm中域的种类。
图3:
该字段描述的是域名,例如图1中的"author"、"content"、"abc"都是FieldName。
域的编号,根据处理域的先后顺序,每个域都会获得一个从0开始递增的域的编号。
该字段是一个组合值,它用来描述当前域是否有以下的属性:
在图1中,域"content"的FieldBits的值为 (0x1 | 0x2 | 0x4) = 0x0111。
该字段描述了当前域的索引选项(IndexOptions),IndexOptions有以下值,每个选项的含义在两阶段生成索引文件之第一阶段已介绍,不赘述:
该字段占用一个字节,其中高4个bit用来描述是否记录norm,低4个bit用来描述DocValues类型,DocValues的类型包括以下类型,在DocValues对每一种都已介绍,不赘述:
该字段描述了DocValues类型的域的更新状态,比如我们调用IndexWriter.updateDocValues(...)方法后,那么DocValuesGen的值会变更,这里不展开介绍,在介绍IndexWriter时会详细介绍。
该字段描述了存储当前域的索引文件的格式(format),比如说当前是一个DocValues的域,那么Attributes的字段会有下面的值:
表示使用Lucene70这种格式来生成索引文件.dvd、.dvm。
该字段描述的是如果域为点数据类型,那么DimensionCount的值为点数据的维度,点数据以及维度的概念在Bkd-Tree以及索引文件之dim&&dii介绍不赘述,在图1中,IntPoint域即为点数据域,DimensionCount的值为3,因为有3,5,9共三个值。
该字段描述的是每一个维度占用的字节个数(数值类型被编码为多个字节),同样已经在前面的文章中介绍了。
图4:
点击下载Markdown文档