Lucene 6 0 索引結構

2021-09-23 17:45:45 字數 1183 閱讀 5560

該模式是預設的。

圖 1-1

復合檔案索引

indexwriterconfig org.apache.lucene.index.indexwriterconfig.setusecompoundfile(boolean usecompoundfile)

呼叫此函式可以設為多檔案索引模式。

圖2-1 多檔案索引

通常在搜尋打分完畢後,indexsearcher會返回乙個docid序列,但是僅僅有docid我們是無法看到儲存在索引中的document,這時候就需要通過docid來得到完整document資訊,這個過程就需要對fdx/fdt檔案進行讀操作。

fdx/fdt檔案就是lucene的正向檔案。有乙個比喻:如果fdt是一本書的正文,那麼fdx則是書的目錄。顯然fdt檔案大於fdx。

通過docid讀取到document需要完成segment、block、chunk、document四級查詢。segment、block、chunk的查詢都是二分查詢,速度很快,但是chunk中定位document則是順序查詢,所以chunk的大小直接影響著讀取的效能。

fdt檔案的基本單位是chunk。

當你在程式中儲存某個域時(使用field.store.yes選項),該域會被寫入兩個檔案:.fdx與.fdt。

fdx的基本單位是block。乙個block由三個部分組成,見圖2-2,.fdx檔案結構。最頂層的chunkindex跟倒數第三層的blockcunks不是乙個東西。

· blockchunks表示當前block中chunk的個數;

· 表示當前block中每個chunk的doc個數,可以看作乙個陣列;

· 表示當前block中每個chunk在fdt檔案中的起始位置,其結構與相同。

圖2-2 .fdx檔案結構

.fnm檔案儲存了段中相關文件的所有field資訊。包括「該域是否被索引?該域是否允許使用項向量?」等。

此檔案中的field不一定按字母順序排列,每個field都有乙個fieldno編號,它會在其他索引檔案中被用到,用來節省空間。

x為indexwriter的寫入次數,從1開始計數。

Lucene 6 0 索引結構

該模式是預設的。圖 1 1 復合檔案索引 indexwriterconfig org.apache.lucene.index.indexwriterconfig.setusecompoundfile boolean usecompoundfile 呼叫此函式可以設為多檔案索引模式。圖2 1 多檔案索...

Lucene6 0分析(一) 資料分析介面

analyer作為資料分析的主要資料模型,他通過tokenstreams分析文字。也可以說它是從文字中提取索引欄位的一種策略。為了實現分析的目的,內部採用 tokenstreamcomponents元件進行實現。analyzer本身整合自closable介面,即呼叫close方法,可以釋放資源。該物...

lucene索引合併

lucene 索引合併 關鍵步驟如下 indexwriter fswriter null fs indexwriter ramwriter null ram directory fsdir directory ramdir ramdir new ramdirectory 判斷原索引檔案是否存在 開啟...