在索引(Indexing)阶段,当某个域被设置为需要记录词向量(term vector)信息后,那么随后在flush阶段,该域对应的词向量将被写入到索引文件.tvd&&tvx&&tvm三个文件中。
图1:
图1中,域名"content"跟"title"都被设置为需要记录词向量信息,而域名"author"则没有。
数据结构
索引文件.tvd
图2:
PackedIntsVersion
PackedIntsVersion描述了压缩使用的方式,当前版本中是VERSION_MONOTONIC_WITHOUT_ZIGZAG。
Chunk
图3:
在索引阶段,每当处理128篇文档或者已经处理的域值的总长度达到4096,就生成一个chunk。
该字段描述的是chunk中第一篇文档的文档号。
该字段描述的是Chunk中的文档数量。
该字段描述的是Chunk中每篇文档中记录词向量的域的数量。例如图1中只有一篇文档,这篇文档中的就包含了2个记录词向量的域。
根据Chunk中包含的文档数量,NumFields字段的数据结构各不相同
图4:
如果图1所示,那么NumFields的值为2,并且不会使用压缩存储。
图5:
当包含多篇文档,那么需要记录每一篇文档中记录词向量的域的数量,然后使用PackedInts存储。
该字段描述的是Chunk中记录词向量的域的种类,根据域的编号来获得域的种类。
看这里:https://www.amazingkoala.com.cn/Lucene/suoyinwenjian/2020/1117/178.html