bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

elasticsearch的doc_values-創新互聯

Doc Values 是什么

為浚縣等地區用戶提供了全套網頁設計制作服務,及浚縣網站建設行業解決方案。主營業務為成都網站設計、成都網站建設、浚縣網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

其實大部分 NoSQL在創建多個索引的時候也采用這種方式,就是再使用另一種方式存儲一份文本,使得可以增強搜索。 Docvalues 通過轉置兩者間的關系來解決這個問題。倒排索引將詞項映射到包含它們的文檔, Docvalues 將文檔映射到它們包含的詞項:

Doc??????Terms-----------------------------------------------------------------Doc_1?|?brown,?dog,?fox,?jumped,?lazy,?over,?quick,?the
Doc_2?|?brown,?dogs,?foxes,?in,?lazy,?leap,?over,?quick,?summer
Doc_3?|?dog,?dogs,?fox,?jumped,?over,?quick,?the-----------------------------------------------------------------

當數據被轉置之后,想要收集到每個文檔行,獲取所有的詞項就非常簡單了。所以搜索使用倒排索引查找文檔,聚合操作收集和聚合 DocValues 里的數據,這就是 ElasticSearch

????深入理解 ElasticSearch Doc Values

DocValues 是在索引時與倒排索引同時生成。也就是說 DocValues倒排索引一樣,基于 Segement 生成并且是不可變的。同時 DocValues倒排索引一樣序列化到磁盤,這樣對性能和擴展性有很大幫助。

DocValues 通過序列化把數據結構持久化到磁盤,我們可以充分利用操作系統的內存,而不是 JVMHeap 。 當 workingset 遠小于系統的可用內存,系統會自動將 DocValues 保存在內存中,使得其讀寫十分高速; 不過,當其遠大于可用內存時,操作系統會自動把 DocValues 寫入磁盤。很顯然,這樣性能會比在內存中差很多,但是它的大小就不再局限于服務器的內存了。如果是使用 JVMHeap來實現那么只能是因為 OutOfMemory 導致程序崩潰了。

Doc Values 壓縮

從廣義來說, DocValues 本質上是一個序列化的 列式存儲,這個結構非常適用于聚合、排序、腳本等操作。而且,這種存儲方式也非常便于壓縮,特別是數字類型。這樣可以減少磁盤空間并且提高訪問速度。下面來看一組數字類型的 DocValues

Doc??????Terms??-----------------------------------------------------------------
??Doc_1?|?100
??Doc_2?|?1000
??Doc_3?|?1500
??Doc_4?|?1200
??Doc_5?|?300
??Doc_6?|?1900
??Doc_7?|?4200
??-----------------------------------------------------------------

你會注意到這里每個數字都是 100 的倍數, DocValues 會檢測一個段里面的所有數值,并使用一個 大公約數 ,方便做進一步的數據壓縮。我們可以對每個數字都除以 100,然后得到: [1,10,15,12,3,19,42] 。現在這些數字變小了,只需要很少的位就可以存儲下,也減少了磁盤存放的大小。

DocValues 在壓縮過程中使用如下技巧。它會按依次檢測以下壓縮模式:

  • 如果所有的數值各不相同(或缺失),設置一個標記并記錄這些值

  • 如果這些值小于 256,將使用一個簡單的編碼表

  • 如果這些值大于 256,檢測是否存在一個大公約數

  • 如果沒有存在大公約數,從最小的數值開始,統一計算偏移量進行編碼

當然如果存儲 String類型,其一樣可以通過順序表對 String類型進行數字編碼,然后再把數字類型構建 DocValues

禁用 Doc Values

DocValues 默認對所有字段啟用,除了 analyzed strings。也就是說所有的數字、地理坐標、日期、IP 和不分析( not_analyzed)字符類型都會默認開啟。

analyzed strings 暫時還不能使用 DocValues,是因為經過分析以后的文本會生成大量的 Token,這樣非常影響性能。

雖然 DocValues非常好用,但是如果你存儲的數據確實不需要這個特性,就不如禁用他,這樣不僅節省磁盤空間,也許會提升索引的速度。

要禁用 DocValues ,在字段的映射(mapping)設置 doc_values:false 即可。例如,這里我們創建了一個新的索引,字段 "session_id" 禁用了 DocValues

PUT?my_index{
??"mappings":?{
????"my_type":?{
??????"properties":?{
????????"session_id":?{
??????????"type":???????"string",
??????????"index":??????"not_analyzed",
??????????"doc_values":?false?
????????}
??????}
????}
??}}

通過設置 doc_values:false ,這個字段將不能被用于聚合、排序以及腳本操作

同樣可以禁用倒排索引,使它不能被正常搜索,但是可以排序,例如:

PUT?my_index{
??"mappings":?{
????"my_type":?{
??????"properties":?{
????????"customer_token":?{
??????????"type":???????"string",
??????????"index":??????"not_analyzed",
??????????"doc_values":?true,?
??????????"index":?"no"?
????????}
??????}
????}
??}}

通過設置 doc_values:trueindex:no ,我們得到一個只能被用于聚合/排序/腳本的字段。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享名稱:elasticsearch的doc_values-創新互聯
網站地址:http://vcdvsql.cn/article8/pgjip.html

成都網站建設公司_創新互聯,為您提供微信小程序網站內鏈做網站網站排名外貿建站品牌網站建設

廣告

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

外貿網站建設