天天看點

lucene索引檔案格式詳解lucene索引檔案格式詳解

lucene索引檔案格式詳解

本文介紹lucene中segment,.fnm,.fdx,.fdt,.tii,.tis,deletable ,.cfs等格式檔案的用途。

1。索引的segment

每個segment代表lucene的一個完整索引段。通常,在一個索引中,會包含有多個segment。每個segment都有一個統一的字首,這個字首是根據目前索引的document數量而确立的。字首名是Document數量轉為36進制後,在前面加上下劃線“_”而構成的。

通常,在一個完整的索引中,有且隻有一個“segments”檔案,這個檔案沒有字尾,它記錄了目前索引中所有segment的資訊。

2..fnm格式

.fnm格式的檔案包含了Document中的所有Field名稱。可以清楚地看到,所有加入的Field名稱都在其中進行了儲存。

3..fdx和.fdt格式

.fdx和.fdt是綜合使用的兩類檔案,其中.fdt類型檔案用于存儲具有Store.YES屬性的Field資料。而.fdx類型檔案則是一個索引,用于存儲Document在下面代碼就是建立索引的代碼。

4..tii和.tis格式

.tis檔案用于存儲分詞後的詞條(Term),而.tii就是它的所有檔案,它标明了每個.tis檔案中詞條的位置.

5.deletable格式

在Lucene的索引中,所有的文檔被删除後并不是立刻從索引中去除,而是留待下次合并索引或對索引進行優化時菜真正删除,這有點類似windows的資源回收筒原理。這種功能是通過deletable檔案實作的。所有的文檔在被删除後,會首先在deletable檔案中留一個記錄,要真正删除時,才将索引除去。

6.複合索引格式 .cfs

在IndexWriter中有一個屬性:useCompoundFile,它的預設值為True,這個屬性的含義是:是否使用複合索引格式儲存索引。索引的内容可能非常大,檔案數量可能非常的多,如果遇到這種情況,系統打開檔案的數量巨大将會極大地耗費系統資源。是以,Lucene提供了一個單檔案索引格式,也就是所謂的複合索引格式。

使用複合索引格式存儲Document内容時,隻需要在初始化完成一個IndexWriter對象後,使用SetUseCompoundFile(boolean)方法,将UserCompoundFile的屬性值設定為True就可以了。

繼續閱讀