ES如何通過文檔id獲取正排信息

前言

根據文檔id定位到某個字段的正排信息,常常用於需要根據某個字段排序,分類計算,這個必須使用Doc values

 

正文

1: 在ES中原始數據是以行式存儲的,也就是文檔的所有字段都會連續的存儲在物理空間上。

這樣勢必會佔用非常多的空間,所以一般都是壓縮存儲的!

正排信息不是來自於原始文檔中。存儲原始文檔的文件 如下

 

查看原始文檔的過程!

第一步二分查找block,定位屬於哪個block。 

  第二步就是根據從block里根據每個chunk的起始文檔號,找到屬於哪個chunk和chunk位置。 

  第三步就是去加載fdt的chunk,找到文檔。

2: docvalues結構 @hxx 列式存儲

在建倒排的時候,docvalues就會同時建好

正排的結構如下:

因爲是列式存儲,就是說所有文檔的city會連續存儲!其中city會用一些壓縮技術,比如漂移量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章