【lucene】advanceshallow就是遍历跳表的,可以看作是跳表的遍历器

一句话总结所有关键点:

  1. `skipTo(target)` 的返回值 不是"跳过的精确文档数",而是上一个间隔已跳过累计数;

  2. `lastDoc` 是 小于 target 的最后一个间隔的最后一个 docID;

  3. `lastChildPointer` 指向 ≥ target 的那个间隔在 posting 列表中的起始文件指针;

  4. Lucene 把 docID 按全局升序排序后,只有第一个存绝对 docID,其余全部存"与前一个的差值";

  5. 这些差值被 128 个一组 block 压缩,但差值链 跨 block 连续,不会因为换块而重置;

  6. 读 block 时给 `base`(上一 block 最后一个绝对 docID),就地累加本 block 128 个 delta,避免从文件头一路算到当前位置,实现 O(1) 定位 + O(128) 解压。

相关推荐
risc1234565 天前
lucene的复杂性体现
lucene
risc1234568 天前
反序列化层的迭代器接口
lucene
暗影凋落10 天前
Unity 射线检测优化:使用 Job System 实现高性能射线批处理
unity·游戏引擎·lucene
risc12345618 天前
【lucene】impacts与帕累托最优
lucene
risc12345619 天前
通过树来理解访问者模式 访问者模式的灵魂在于数据结构的遍历 访问者访问的是数据结构的某一个元素他要觉得要不要访问这个元素或者访问哪些元素
lucene·访问者模式
risc12345624 天前
内隐表征构建
lucene
J_bean24 天前
Elasticsearch 倒排索引中词条索引原理分析 — 基于 Lucene FST
elasticsearch·lucene·倒排索引·词条索引·fst
野区捕龙为宠1 个月前
Unity 持久化数据
unity·游戏引擎·lucene
拼搏的水杯1 个月前
使用Lucene.Net实现全文检索
全文检索·.net·lucene
sunxunyong2 个月前
ranger与solr&ldap&doris集成部署
solr·lucene