下圖是乙個典型的lucene4.x的索引結構圖:
lucene4.x之後的所有索引格式如下所示:
檔名字尾描述
segments file
segments.gen, segments_n
儲存段檔案的提交點資訊
lock file
write.lock
檔案鎖,保證任何時刻只有乙個執行緒可以寫入索引
segment info
.si儲存每個段檔案的元資料資訊
compound file
.cfs, .cfe
復合索引的檔案,在系統上虛擬的乙個檔案,用於頻繁的檔案控制代碼
fields
.fnm
儲存域檔案的資訊
field index
.fdx
儲存域資料的指標
field data
.fdt
儲存所有文件的字段資訊
term dictionary
.tim
term字典,儲存term資訊
term index
.tip
term字典的索引檔案
frequencies
.frq
詞頻檔案,包含文件列表以及每乙個term和其詞頻
positions
.prx
位置資訊,儲存每個term,在索引中的準確位置
norms
.nrm.cfs, .nrm.cfe
儲存文件和域的編碼長度以及加權因子
per-document values
.dv.cfs, .dv.cfe
編碼除外的額外的打分因素,
term vector index
.tvx
term向量索引,儲存term在文件中的偏移距離
term vector documents
.tvd
包含每個文件向量的資訊
term vector fields
.tvf
儲存filed級別的向量資訊
deleted documents
.del
儲存索引刪除檔案的資訊
復合索引檔案是指,除了段資訊檔案,鎖檔案,以及刪除的檔案外,其他的一系列索引檔案壓縮乙個字尾名為cfs的檔案,意思,就是所有的索引檔案會被儲存成乙個單例的directory,而非復合索引是靈活的,可以單獨的訪問某幾個索引檔案,而復合索引檔案則不可以,因為其壓縮成了乙個檔案,所以在某些場景下能夠獲取更高的效率,比如說,查詢頻繁,而不經常更新的需求,就很適合這種索引格式。
lucene索引的基本概念組成由,索引,文件,域和項組成,乙個索引,通常包含一些序列的文件,乙個文件包含一些序列的域,而一些域又包含一些序列的項,而一些項則包含一些列序列的最低層的位元組,注意這裡的序列指的是在索引結構中有序,通常有序的這種方式,某些情況可以優化索引結構。
lucene使用了倒排索引(inverted indexing),來儲存索引資訊,大大提高了檢索效率,
倒排索引,舉乙個通俗的例子,原來基於人們的正常思維,我們會儲存的是乙個文章中出現了那幾個單詞,而倒排索引,卻恰恰相反,它儲存的是這個單詞,包含在幾個文件中,當然這個關係是由倒排鍊錶(儲存一系列docid)構成的索引,我們在檢索時,通過這個單詞可以快速的定位,它出現在幾篇文章中,從而大大提公升了檢索效能。
**:
lucene 索引檔案格式
lucene索引檔案格式詳解本文介紹lucene中segment,fnm,fdx,fdt,tii,tis,deletable cfs等格式檔案的用途。1。索引的segment 每個segment代表lucene的乙個完整索引段。通常,在乙個索引中,會包含有多個segment。每個segment都有乙...
lucene索引檔案格式
學習lucene索引檔案格式的目的是通過對lucene資料結構的理解,從而為lucene索引實現打下基礎。索引檔案的整體結構 如下圖,這是整個索引檔案的整體結構,可以看到,實際上lucene索引儲存下了相當多的東西 但是,單從上面的檔案羅列,很難看出來乙個整體的結構,那麼,接下來這張圖就向我們展示這...
lucene索引檔案格式
學習lucene索引檔案格式的目的是通過對lucene資料結構的理解,從而為lucene索引實現打下基礎。索引檔案的整體結構 如下圖,這是整個索引檔案的整體結構,可以看到,實際上lucene索引儲存下了相當多的東西 但是,單從上面的檔案羅列,很難看出來乙個整體的結構,那麼,接下來這張圖就向我們展示這...