在索引(Indexing)阶段,当某个域被设置为需要记录词向量(term vector)信息后,那么随后在flush阶段,该域对应的词向量将被写入到索引文件.tvd&&tvx&&tvm三个文件中。

图1:

Lucene 索引文件之tvd&&tvx&&tvm

  图1中,域名"content"跟"title"都被设置为需要记录词向量信息,而域名"author"则没有。

数据结构

索引文件.tvd

图2:

Lucene 索引文件之tvd&&tvx&&tvm

PackedIntsVersion

  PackedIntsVersion描述了压缩使用的方式,当前版本中是VERSION_MONOTONIC_WITHOUT_ZIGZAG。

Chunk

图3:

Lucene 索引文件之tvd&&tvx&&tvm

  在索引阶段,每当处理128篇文档或者已经处理的域值的总长度达到4096,就生成一个chunk。

DocBase

  该字段描述的是chunk中第一篇文档的文档号。

ChunkDocs

  该字段描述的是Chunk中的文档数量。

NumFields

  该字段描述的是Chunk中每篇文档中记录词向量的域的数量。例如图1中只有一篇文档,这篇文档中的就包含了2个记录词向量的域。

  根据Chunk中包含的文档数量,NumFields字段的数据结构各不相同

Chunk中只包含一篇文档

图4:

Lucene 索引文件之tvd&&tvx&&tvm

  如果图1所示,那么NumFields的值为2,并且不会使用压缩存储

Chunk中包含多篇文档

图5:

Lucene 索引文件之tvd&&tvx&&tvm

  当包含多篇文档,那么需要记录每一篇文档中记录词向量的域的数量,然后使用PackedInts存储

FieldNums

  该字段描述的是Chunk中记录词向量的域的种类,根据域的编号来获得域的种类。

 

看这里:https://www.amazingkoala.com.cn/Lucene/suoyinwenjian/2020/1117/178.html

相关文章:

  • 2022-12-23
  • 2021-10-02
  • 2021-12-26
  • 2022-01-29
  • 2021-06-05
  • 2022-01-13
  • 2021-06-22
猜你喜欢
  • 2021-07-05
  • 2021-07-25
  • 2022-01-03
  • 2021-06-06
  • 2021-06-22
  • 2021-09-26
相关资源
相似解决方案