fdt檔案,以正排的方式, 存儲了field的原始真實資料. 也就是說, 你添加到所有中的所有field内容. 都會存儲在此檔案中.
其中. 對于每一個chunk. 首先會存儲一個 ChunkHeader:
其中包括:
docBase : 目前chunk裡的第一個docID.
numBufferedDocs slice . 目前塊裡面緩沖了多少個doc, 可以根據docBase及num來算出每一個docId. 還以bit的方式存儲了目前chunk是否分片.
存儲每個文檔有多少個field. (數組)
存儲每個文檔的field資訊長度(位元組長度) (數組)
之後,會将目前chunk的所有field資訊進行壓縮存儲.
其中依次羅列了所有的doc, 每個doc中羅列了所有的field.
field資訊中, 存儲了:
FieldNumberAndType: field的編号及類型
Value: 實際的值, 根據不同類型(int,long,string,bytes等),存儲方法不同.