Lucene文件格式简介

1、定义

Lucene中基本的概念包括index、document、field、term。

  • 一个index包含一系列的documents;
  • 一个document包含一系列的fields;
  • 一个field包含一系列的terms;
  • 一个term是一系列的bytes;

2、分段

Lucene索引可能由多个分段(segment)组成,每个分段是完全独立的,可以独立的执行搜索。有两种情况产生新的分段:

  • refresh操作产生一个分段,为新增的document创建新的分段;
  • 已存在的分段合并成新的分段;

一次对Lucene索引的搜索需要搜索全部分段。

3、文件命名规则

属于一个段的所有文件都具有相同的名称和不同的扩展名。当使用复合索引索引文件(默认)时,除.si、write.lock、.del外的其他文件被合并压缩成单个.cfs文件。

文件名不会被重用,任何文件保存到目录时,它有唯一的文件名。这是通过简单的生成方法实现的,例如,第一个分段文件名为segment_1,接下来是segment_2。

4、文件扩展名

下表总结了Lucene中文件的名称和扩展名。

Lucene文件格式简介

看一个ES索引存储在磁盘的示例

Lucene文件格式简介

参考:《Elasticsearch源码解析与优化实战》张超;