首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Lucene系列(13)索引格式之nvd文件

Lucene系列(13)索引格式之nvd文件

作者头像
呼延十
发布2021-03-22 14:55:53
发布2021-03-22 14:55:53
7430
举报
文章被收录于专栏:呼延呼延

本文使用 Lucene 代码版本:8.7.0

前言

本文学习一下。nvd 文件的格式与内容。

nvm 与 nvd 文件配合存储了索引中的标准化相关信息。其中 nvd 存储了真实的数据,比如当前 field 有值的所有 docId,以及他们的标准化值。

.pay 文件整体结构

字段解释:


  1. Field: 一个 field 的所有标准化信息

  1. DocIDWIthField: 这个域有值的所有 docId 的集合。
  2. NormsData: 这个域的所有的标准化值。

相关写入代码分析

nvm 及 nvd 文件的写入全部在org.apache.lucene.codecs.lucene80.Lucene80NormsConsumer类中。

初始化

在该类的构造函数中,进行了初始化及 Header 的写入。

addNormsField

org.apache.lucene.codecs.lucene80.Lucene80NormsConsumer#addNormsField中进行了全部的内容写入。

具体内容都在注释里,不再赘述。

所有的两块数据,分别在标志处写入。

)

与 nvm 文件内容的对应关系

看了这么多文件,想必我们也发现了。xxd 和 xxm 文件是对应的,在 xxm 文件中会存储 xxd 文件中的一些文件位置用来快速进行访问,在 nvm 和 nvd 文件中也不例外。具体的两个映射值如下图。

根据这张图, 可以比较直观的发现,在 nvm 中,将 nvd 文件中的两大块内容的起始文件地址都存储了下来,因此可以进行快速的随机访问。

结语

比较简单,罗列一下。

完。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • .pay 文件整体结构
  • 相关写入代码分析
    • 初始化
    • addNormsField
  • 与 nvm 文件内容的对应关系
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档