前言
根據文檔id定位到某個字段的正排信息,常常用於需要根據某個字段排序,分類計算,這個必須使用Doc values
正文
1: 在ES中原始數據是以行式存儲的,也就是文檔的所有字段都會連續的存儲在物理空間上。
這樣勢必會佔用非常多的空間,所以一般都是壓縮存儲的!
正排信息不是來自於原始文檔中。存儲原始文檔的文件 如下
查看原始文檔的過程!
第一步二分查找block,定位屬於哪個block。
第二步就是根據從block里根據每個chunk的起始文檔號,找到屬於哪個chunk和chunk位置。
第三步就是去加載fdt的chunk,找到文檔。
2: docvalues結構 @hxx 列式存儲
在建倒排的時候,docvalues就會同時建好
正排的結構如下:
因爲是列式存儲,就是說所有文檔的city會連續存儲!其中city會用一些壓縮技術,比如漂移量