91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

lucene倒排索引的存儲方式

發布時間:2021-06-26 14:26:47 來源:億速云 閱讀:348 作者:chen 欄目:大數據

這篇文章主要介紹“lucene倒排索引的存儲方式”,在日常操作中,相信很多人在lucene倒排索引的存儲方式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”lucene倒排索引的存儲方式”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

            通過談談lucene倒排索引的存儲方式(3-2)和談談lucene倒排索引的存儲方式(3-1)的分析可知,當有公共前綴的詞的數量達到指定閾值時會寫入到一個Block中,不過還沒有對其中的細節進行分析,現通過給定的輸入abc、abcd、abcde、abcdef、abcdf、abcdg、abe、abf、abg、abh,以及參數閾值MIN_BLOCK_SIZE = 3和MAX_BLOCK_SIZE = 4來對倒排索引的構成進一步研究。

            當輸入abe時由于abcd、abcde、abcdef、abcdf、abcdg以abcd為前綴的個數為5個已經超過MIN_BLOCK_SIZE個數,因此達到寫成一個Block的條件,由于MAX_BLOCK_SIZE=4所以對這5個item需要進一步按照MIN_BLOCK_SIZE3個為一組進行拆分,即abcd、abcde、abcdef會寫到一個Block(該Block也是一個leafBlock,因為它的元素只有詞)中,除了前綴abcd,其余的后綴以及postings元數據(經過壓縮)會全部寫入到termsOut文件流中,對于該Block有以下重要屬性prefix, startFP, hasTerms, isFloor, floorLeadLabel, subIndices,其中prefix表示公共前綴即abcd,startFP表示termsOut文件流指針(通過該指針可以從tim文件中解析出該Block中每個詞的信息),hasTerms表示該塊是否包含詞(很明顯該Block中全部都是詞),isFloor為True表示該塊由于超過MAX_BLOCK_SIZE個數進行了進一步分塊,floorLeadLabel該塊中第一個詞的第prefixLen個字符(該塊為-1),subIndices表示子塊的索引(該塊沒有子塊)。然后abcdf與abcdg會同樣寫入到一個新塊中,不過此時prefix記錄的是abcdf,floorLeadLabel記錄的是f。寫完這兩個塊就得想辦法如何能定位這兩個Block了:首先這兩個塊的Floor都為True,先寫入第一個塊的fp、hasTerm標記和isFloor,再寫入剩余Block的個數對每個Block寫入floorLeadLabel(主要用于查詢某個詞時可以預判,如果不存在就無需加載該塊下所有的詞),這些信息最終會轉換成字節數組并且和前綴abcd一起寫入FST中,該FST是保存在第一個Block中的,最后將pending列表中的abcd、abcde、abcdef、abcdf、abcdg替換成該Block,于是pending列表中的元素為pendingTerm:abc、pendingBlock:abcd以及新增的pendingTerm:abe。

           繼續添加abf、abg、abh,此時pending列表中有6個entry,其中5個term,1個block。最后需將這6個entry按照MIN_BLOCK_SIZE和MAX_BLOCK_SIZE設定的閾值繼續分塊:首先term:abc、block:abcd、term:abe會組成一個新的Block,其中在寫入block:abcd時記錄的是block的文件指針,然后term:abf、abg、abh也會形成一個新的Block,最后這兩個新的Block會按照前面所述的方式一起寫入FST中并保存在第一個Block中。至此倒排索引的存儲方式算是分析結束了,其實lucene的倒排索引的邏輯視圖還是樹狀的(最終會以FST的形式保存索引數據由于FST可以共享后綴所以FST是個圖,但是它也可以認為是對樹的一種優化,我們可以認為FST是一種共享后綴的前綴樹),早期實現的跳躍鏈表也是樹狀的,而關系庫中常用的B樹也是樹狀的,它們在查詢的效率以及讀寫的實時性上有一定的差異性,以后對這三種形式的樹進行仔細的分析。后面還是著重對lucene的索引合并、多線程寫入、實時性以及事務性方面進行分析!

到此,關于“lucene倒排索引的存儲方式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汤原县| 罗江县| 永新县| 夏邑县| 耒阳市| 阳新县| 隆化县| 申扎县| 安义县| 榆林市| 钟祥市| 西贡区| 上饶县| 喜德县| 普陀区| 东安县| SHOW| 洞头县| 平远县| 宁夏| 镇平县| 银川市| 葫芦岛市| 环江| 苏尼特左旗| 轮台县| 尼玛县| 绵竹市| 弥勒县| 祁东县| 乳山市| 木兰县| 松桃| 茶陵县| 阳西县| 铁力市| 阿拉善左旗| 锡林郭勒盟| 宜兰县| 辰溪县| 天津市|