1. 程式人生 > >Lucene索引檔案結構速覽

Lucene索引檔案結構速覽


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