lucene倒排索引的存儲方式是什么

本篇內(nèi)容介紹了“l(fā)ucene倒排索引的存儲方式是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供明山網(wǎng)站建設(shè)、明山做網(wǎng)站、明山網(wǎng)站設(shè)計、明山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、明山企業(yè)網(wǎng)站模板建站服務(wù),十年明山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

lucene的倒排索引存儲包括詞的索引數(shù)據(jù)存儲、詞的位置存儲以及寫入過程,這3個部分是比較復雜的準備分開描述,先談?wù)勎恢玫拇鎯Ψ绞剑?/p>

詞的位置具體包括每篇文檔中的詞頻、位置以及附帶的payload(這里先忽略掉norm信息的存儲),這3塊lucene分別采用了3個輸出流進行寫入,具體寫入過程如下:

1、對于每個詞而言會記錄該次所屬的文檔ID以及在該文檔中的詞頻,由于文檔ID已經(jīng)排過序所以寫入時會進行差值壓縮存儲,而文檔詞頻會直接存儲,并且每128條記錄進行分塊壓縮存儲;

2、令Doc=abc|123;bcd;def,每寫完所屬文檔ID以及詞頻,就會寫入該詞在文檔中的每個位置(指文檔經(jīng)過分詞后的第n個詞(分號為詞的分隔符def為第3個詞))、起始和結(jié)束的偏移量(指文檔未分詞時的開始和結(jié)束位置(bcd的開始和結(jié)束位置分別為8和11),通過偏移量可以算出詞、payload以及payload分隔符的總長度,所以這個長度不要認為是詞的長度和payload的長度(123為payload,對于abc的開始和結(jié)束位置分別為0和7))、每個詞附帶的payload信息。由于位置信息、偏移量已經(jīng)排過序所以會按照差值壓縮存儲。位置信息會按照128條記錄分塊壓縮存儲到單獨的文件中。payload的長度信息以及偏移量也按照128條記錄分塊壓縮存儲到單獨的文件中而payload的內(nèi)容并沒有壓縮而是直接寫入同一個文件中。

lucene倒排索引的存儲方式是什么

對于詞頻按照128條記錄分塊壓縮是因為包含同一個詞的文檔可能非常多,極端情況下是所有文檔都有。除了壓縮還需要提供能夠隨機訪問每篇文檔位置信息的功能,因此對位置信息又建立了一層索引結(jié)構(gòu),而且是每個詞對應(yīng)一套索引。

索引需要記錄的信息包括:上個塊中最后一篇文檔的ID,上個位置塊的文件指針,上個payload塊的文件指針,剩余未壓縮的位置信息個數(shù)以及剩余未壓縮的payload數(shù)組長度。(這塊索引內(nèi)容還是放到下篇詳細說明)

當寫完一個term時,對于剩余未達到128條記錄的內(nèi)容,文檔ID和詞頻按照vint方式壓縮,位置、payload長度和偏移量同樣按照vint方式壓縮而payload內(nèi)容直接寫入。

“l(fā)ucene倒排索引的存儲方式是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站標題:lucene倒排索引的存儲方式是什么
當前地址:http://muchs.cn/article18/ipiegp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站移動網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)全網(wǎng)營銷推廣、網(wǎng)站內(nèi)鏈標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化