index structure

1. wordlist
  0) 0, 1byte

  1) token-id(delta), 8byte
  2) doclist-offset(delta), 8byte
  3) doc_count, 4byte
  4) hit_count, 4byte
  1)-4)为一组数据,重复出现,每1024(wordlist_checkpoint)组出现一个checkpoint

  checkpoint:
  5) 0, 8byte : indicate checkpoint
  6) doclist中对应数据长度, 8byte

  last:
  WordlistCheckpoint数据
  7) token_id, 8byte
  8) wordlist-offset, 8byte

2. doclist
  0) 0, 1byte

  1) doc_count_in_block, 4byte
  2) hitlist_offset, 8byte
  3) array:doc-id-delta, 4byte
  1) - 3)为一个block,不断重复,*当token_id变化时 或 满了 64(max_num_doc_in_one_block)个doc时,写出一个block

  4) 0, 4byte: 标识着一个token的block的结束

3. hitlist
  0) 0, 1byte

  1) block_size, 4byte
  2) gamma-ziped:array:hit_freq/doc,
  3) gamma-ziped:array:extend_freq/doc,
  4) array:sec_pos_delta/hit, 4byte
  5) array:attr/hit, 8byte
  6) array:extend_attr/hit

  1) - 6)为一个block,与doclist中的block对应, 创建规则与doclist一致


4. jumplist
  0) token_id, 8byte
  1) array:
    1. doc_id/doc, 4byte the 1st doc-id in block
    2. array2:doclist-offset/doc, 8byte
  2) 0

你可能感兴趣的:(struct)