lucene學習資料(索引檔案格式詳解)
本文介紹lucene中segment,.fnm,.fdx,.fdt,.tii,.tis,deletable ,.cfs等格式檔案的用途。
每個segment代表lucene的乙個完整索引段。通常,在乙個索引中,會包含有多個segment。每個segment都有乙個統一的字首,這個字首是根據當前索引的document數量而確立的。字首名是document數量轉為36進製後,在前面加上下劃線「_」而構成的。
通常,在乙個完整的索引中,有且只有乙個「segments」檔案,這個檔案沒有字尾,它記錄了當前索引中所有segment的資訊。
.fnm格式的檔案包含了document中的所有field名稱。可以清楚地看到,所有加入的field名稱都在其中進行了儲存。
.fdx和.fdt是綜合使用的兩類檔案,其中.fdt型別檔案用於儲存具有store.yes屬性的field資料。而.fdx型別檔案則是乙個索引,用於儲存document在下面**就是建立索引的**。
.tis檔案用於儲存分詞後的詞條(term),而.tii就是它的所有檔案,它標明了每個.tis檔案中詞條的位置.
在lucene的索引中,所有的文件被刪除後並不是立刻從索引中去除,而是留待下次合併索引或對索引進行優化時菜真正刪除,這有點類似windows的**站原理。這種功能是通過deletable檔案實現的。所有的文件在被刪除後,會首先在deletable檔案中留乙個記錄,要真正刪除時,才將索引除去。
在indexwriter中有乙個屬性:usecompoundfile,它的預設值為true,這個屬性的含義是:是否使用復合索引格式儲存索引。索引的內容可能非常大,檔案數量可能非常的多,如果遇到這種情況,系統開啟檔案的數量巨大將會極大地耗費系統資源。因此,lucene提供了乙個單檔案索引格式,也就是所謂的復合索引格式。
使用復合索引格式儲存document內容時,只需要在初始化完成乙個indexwriter物件後,使用setusecompoundfile(boolean)方法,將usercompoundfile的屬性值設定為true就可以了。
Lucene索引檔案
如何產生乙個segment?當indexwriter執行commit時,會產生乙個segment。下述檔案每個segment乙個 fnm 儲存乙個segment中field個數,field名稱,field的屬性 是否索引 儲存etc fdt 儲存乙個segment中,每個document中所有fie...
Lucene系列 索引檔案
本文介紹下lucene生成的索引有哪些檔案組成,每個檔案包含了什麼資訊。基於lucene 4.10.0。索引 index 包含了儲存的文件 document 正排 倒排資訊,用於文字搜尋。索引又分為多個段 segments 每個新新增的doc都會存到乙個新segment中,不同的segments又會...
lucene 索引檔案格式
lucene索引檔案格式詳解本文介紹lucene中segment,fnm,fdx,fdt,tii,tis,deletable cfs等格式檔案的用途。1。索引的segment 每個segment代表lucene的乙個完整索引段。通常,在乙個索引中,會包含有多個segment。每個segment都有乙...