Lucene索引文件结构速览

时间:2022-12-17 03:09:56


Lucene的索引结构是有层次结构。
每个层次都保存了本层次的信息以及下一层次的元信息。


1) 索引Index
 在Lucene中,一个索引是放在一个文件夹中的

2) 段Segment
 一个索引可以包含多个段,段与段之间是独立的。
 添加新文档可以生成新的段,不同的段可以合并。

3) 文档Doucument
 文档是我们建索引的基本单位
 不同的是保存在不同的段中的
 一个段可以包含多篇文档
 新加的文档是单独保存在一个新生成的段中的
 随着段的合并,不同的文档合并到同一个段中

4) 域Field
 一篇文档包含不同类型的信息,可以分开索引
 不同域的索引方式可以不同

5) 词Term
 词是索引的最小单位
 是经过词法分析和语言处理后的字符串


Lucene的索引结构,即保存了正向信息,也保存了反向信息。
正向信息:索引Index --> 段Segment --> 文档Document --> 域Field --> 词Term
反向信息:词Term --> 文档Document

 

1. 属于整个索引index的文件


1.1. Generation of index【segments.gen】


segments.gen

 

1.2. 段的元数据 Segment metadata【segments_N】


segments_N

保存的是段segment的元数据
然后分多个segment保存数据信息
同一个segment有相同的前缀文件名

 

1.3. 写锁定文件 Write lock file【Write.lock】


Write.lock

 

1.4. 段数据 Segment data下节细讲


 

 

2. 属于某个段segment的文件


对于每个段,包含域信息、词信息,以及其它信息,如标准化因子、删除文档

 

2.1. 域信息 Field Information (是正向信息)

 

2.1.1.域的元数据信息 Field metadata 【.fnm】


.fnm 保存了此段包含了多少个域,每个域的名称及索引方式。

 

2.1.2.域的数据信息 Field data 【.fdt/.fdx】


.fdt、.fdx 保存了此段包含的所有文档
.fdt是域数据文件: 保存存储域信息
.fdx是域索引文件: 保存索引域信息

 


2.1.3. 词向量Term Vector的数据信息【.tvx/.tvd/.tvf】


.tvx词向量索引文件
.tvd词向量文档文件
.tvf词向量域文件

 


2.2. 词信息 Term Information (是反向信息)

 


2.2.1. 词典 Term Dictionary 【.tis/.tii】


.tis词典文件
.tii词典索引文件

 

2.2.2. 文档号及词频信息 Term Frequency 【.frq】


.frq: 文档号及词频倒排表

 

2.2.3. 词位置信息 Term Postion 【.prx】


.prx: 词位置倒排表 Term Postion

 

 

2.3. 其它信息


2.3.1. 标准化因子文件 Normalization Info 【.nrm】


.nrm

 

2.3.2. 删除文档文件 Deleted Documents 【.del】


.del