lucene4.7 索引文件(九)

下圖是一個典型的Lucene4.x的索引結構圖: web


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的核心,是由於它提高了檢索性能,在檢索到一個個具體的文檔時,就須要咱們正向的拿出這些信息,反映在實際的代碼中就是咱們經過檢索獲取一個個docid,而後經過一個個docid獲取整個文檔,而後咱們在正向的獲取各個域,以及各個項存儲的具體信息,固然前提是你存儲了這個字段,若是你只是索引了,而並無存儲,那麼你只能檢索到此條信息,但沒法獲取具體term的值,這個須要在建索引以前就要設計好,索引的存儲結構,那些字段是檢索的,那些字段是存儲的等等,若是你還須要高亮一些內容,則還須要存儲這個域的偏移的位置,經過這樣就能準確的在文中標記檢索命中的關鍵詞,若是你打算在前臺來完成這個高亮,就不要存儲這些信息了。
相關文章
相關標籤/搜索