news 2026/6/10 22:56:36

【lucene】 Lucene 段(Segment)中 docId 机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【lucene】 Lucene 段(Segment)中 docId 机制

下面是对Lucene 段(Segment)中 docId 机制的详细、系统性讲解,涵盖其设计原理、结构、生命周期、使用方式以及与 Elasticsearch 的关系。

docId不是一成不变的,docId 会随段合并而改变,不具备持久性


🧱 一、什么是 docId?

在 Lucene 中,docId(文档 ID)是一个从0开始的整数,用于在单个 Segment 内部唯一标识一个文档。

  • 它是局部的(per-segment),不是全局唯一的。
  • 不是用户可见的,而是 Lucene 内部用于高效访问文档的“数组下标”。
  • 不等于_id,也不具备持久性。

🔗 二、全局 docId vs 局部 docId

1.局部 docId(Segment 内部)

  • 每个 Segment 是一个独立的倒排索引 + 正向存储单元。
  • 文档写入 Segment 后,按顺序分配0, 1, 2, ..., N-1的局部 docId。
  • 所有内部结构(如倒排链、doc values、stored fields)都通过这个局部 docId 索引。

✅ 示例:

Segment S1: docId=0 → {"_id": "A", "title": "hello"} docId=1 → {"_id": "B", "title": "world"}

2.全局 docId(Index

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 19:41:56

ClickHouse高性能技术解析

目录 一、 底层存储与列式存储 二、 向量化查询执行与并行处理 三、 算法优化与针对性设计 四、 分布式架构 五、 其他关键特性 总结:ClickHouse 高性能的本质 ClickHouse 的高性能源于其 为大规模数据分析而设计的架构理念和一系列针对性优化。它不是一个通用…

作者头像 李华
网站建设 2026/6/10 15:24:59

BYOVD再探—编写简单的驱动与Loade

前言 之前已经说过如何通过驱动进入内核了,今天我们来编写一个简单的驱动以及驱动加载器,虽然上一篇也有介绍了,但是还是再记录一下。 驱动编写 如何创建驱动项目就不说了,上一篇说过了,直接进入正题。 老规矩&…

作者头像 李华
网站建设 2026/6/10 15:23:02

Miniconda-Python3.9配置HTTPS反向代理保护Jupyter

Miniconda-Python3.9 配置 HTTPS 反向代理保护 Jupyter 在数据科学和 AI 开发日益普及的今天,越来越多团队选择将 Jupyter Notebook 部署为远程协作平台。然而,一个常见的误区是:只要服务器能连上,开发效率就提升了——却忽视了默…

作者头像 李华
网站建设 2026/6/10 19:30:30

如何更好地学习 Java(适合初学者)

Java 是一门强大且广泛使用的编程语言,适合初学者入门。掌握 Java 不仅能帮助理解编程基础,还能为后续学习更高级的技术打下扎实的基础。以下是几个关键的学习建议:打好基础语法学习任何编程语言,基础语法都是第一步。Java 的基础…

作者头像 李华
网站建设 2026/6/10 15:47:54

【git】git-transfer一行搞定仓库迁移

文章目录介绍使用场景可用命令单个迁移示例批量迁移自动创建gitea组织和仓库执行步骤新增特性支持的地址格式获取介绍 这是一个go语言编写的命令行git迁移工具:git-transfer。 特点: 快速迁移,保留完整branch和commits记录本地到远程批量迁…

作者头像 李华