如果排序后順序發(fā)生變化,如何排序呢?對于已經(jīng)寫到文件中的數(shù)據(jù),比如store field和term vector,需要從文件中讀出來,重新排列后再寫到一個新文件里,原來的文件就相當于一個臨時文件 。對于內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),直接在內(nèi)存中重排后寫到文件中 。
相比沒有IndexSorting時,對性能影響比較大的一塊就是store field的重排,因為這部分需要從文件中讀出再寫回,而其他部分都是內(nèi)存操作,性能影響稍小一些 。這里我們也可以做一些思考,如果將store field和term vector這類數(shù)據(jù)也buffer在內(nèi)存中,是否可以提升IndexSorting開啟時的寫入性能?
2. Merge時保證新的Segment數(shù)據(jù)有序
由于Flush時Segment已經(jīng)是有序的了,所以在Merge時也就可以采用非常高效的Merge Sort的方式進行 。
總結(jié)IndexSorting是一種能夠極大提高查詢效率的技術,它通過預排序和提前中斷大大減少了需要掃描的數(shù)據(jù)量,而且附帶的優(yōu)化是可以提高壓縮率,減少存儲空間 。對于查詢時需要按照某列排序的場景,它非常有用,但對于相關性分數(shù)排序的場景則無法通過預排序來優(yōu)化 。IndexSorting的缺點是對寫入性能有影響,主要是體現(xiàn)在Segment的Flush和Merge階段,對于非??粗貙懭胄阅艿膱鼍耙膊贿m合使用 ??傮w上說,這是一項非常有用也很新的技術,相信它在Lucene和ES中的重要性會越來越強,也會有越來越多的業(yè)務場景受益于這個功能 。
以上關于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 肚皮舞教程 動作指導
- 肚皮舞教程的入門動作
- 閑魚無貨源你必須搞懂的5個問題 閑魚無貨源賺錢詳細教程
- 阿里云建網(wǎng)站詳細步驟 阿里云建站詳細教程
- imac一體機重裝系統(tǒng) imac裝win7詳細教程
- 路由器頻段帶寬設置方法教程 頻段帶寬
- 開菜鳥驛站需要哪些前提條件 無經(jīng)驗的人可以開菜鳥驛站嗎
- ps圖片轉(zhuǎn)矢量圖教程 如何做矢量圖海報
- QQ永久凍結(jié)解封方法技巧教程 免費強制解凍qq網(wǎng)站
- Excel文件轉(zhuǎn)Dat文件教程 dat是什么文件
