本篇內(nèi)容介紹了“l(fā)ucene倒排索引的存儲方式是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供明山網(wǎng)站建設(shè)、明山做網(wǎng)站、明山網(wǎng)站設(shè)計(jì)、明山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、明山企業(yè)網(wǎng)站模板建站服務(wù),十年明山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
lucene的倒排索引存儲包括詞的索引數(shù)據(jù)存儲、詞的位置存儲以及寫入過程,這3個(gè)部分是比較復(fù)雜的準(zhǔn)備分開描述,先談?wù)勎恢玫拇鎯Ψ绞剑?/p>
詞的位置具體包括每篇文檔中的詞頻、位置以及附帶的payload(這里先忽略掉norm信息的存儲),這3塊lucene分別采用了3個(gè)輸出流進(jìn)行寫入,具體寫入過程如下:
1、對于每個(gè)詞而言會(huì)記錄該次所屬的文檔ID以及在該文檔中的詞頻,由于文檔ID已經(jīng)排過序所以寫入時(shí)會(huì)進(jìn)行差值壓縮存儲,而文檔詞頻會(huì)直接存儲,并且每128條記錄進(jìn)行分塊壓縮存儲;
2、令Doc=abc|123;bcd;def,每寫完所屬文檔ID以及詞頻,就會(huì)寫入該詞在文檔中的每個(gè)位置(指文檔經(jīng)過分詞后的第n個(gè)詞(分號為詞的分隔符def為第3個(gè)詞))、起始和結(jié)束的偏移量(指文檔未分詞時(shí)的開始和結(jié)束位置(bcd的開始和結(jié)束位置分別為8和11),通過偏移量可以算出詞、payload以及payload分隔符的總長度,所以這個(gè)長度不要認(rèn)為是詞的長度和payload的長度(123為payload,對于abc的開始和結(jié)束位置分別為0和7))、每個(gè)詞附帶的payload信息。由于位置信息、偏移量已經(jīng)排過序所以會(huì)按照差值壓縮存儲。位置信息會(huì)按照128條記錄分塊壓縮存儲到單獨(dú)的文件中。payload的長度信息以及偏移量也按照128條記錄分塊壓縮存儲到單獨(dú)的文件中而payload的內(nèi)容并沒有壓縮而是直接寫入同一個(gè)文件中。
對于詞頻按照128條記錄分塊壓縮是因?yàn)榘粋€(gè)詞的文檔可能非常多,極端情況下是所有文檔都有。除了壓縮還需要提供能夠隨機(jī)訪問每篇文檔位置信息的功能,因此對位置信息又建立了一層索引結(jié)構(gòu),而且是每個(gè)詞對應(yīng)一套索引。
索引需要記錄的信息包括:上個(gè)塊中最后一篇文檔的ID,上個(gè)位置塊的文件指針,上個(gè)payload塊的文件指針,剩余未壓縮的位置信息個(gè)數(shù)以及剩余未壓縮的payload數(shù)組長度。(這塊索引內(nèi)容還是放到下篇詳細(xì)說明)
當(dāng)寫完一個(gè)term時(shí),對于剩余未達(dá)到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ì)量的實(shí)用文章!
網(wǎng)站標(biāo)題:lucene倒排索引的存儲方式是什么
當(dāng)前地址:http://jinyejixie.com/article18/ipiegp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)