【lucene】lucene索引文件的读取器都是单向的只能向前不能后退读

**凡是通过 `IndexInput`/`IndexOutput` 的 `readXxx / writeXxx` 系列方法读写的底层流** 都是**单向顺序或随机定位**;

但 Lucene 在**高层**提供了几种不同的"游标"语义,要分清:

  1. **PostingsEnum / DocsEnum / ImpactsEnum**

→ **单向、不可回退**。用完就丢,想再扫必须重新要一个新的实例。

  1. **TermsEnum(词典迭代器)**

→ 也是**单向**,`seekCeil / seekExact` 只能向前定位;不能回到已扫过的 term。

  1. **StoredFieldsVisitor / TermVectors**

→ 读取某个文档的**完整字段/词向量**时,内部会**随机定位**到 `.fdx/.fdt/.tvx/.tvd` 的指定字节位置。

这里**不是顺序流**,而是 **"按 docId 随机 seek"**,但也**不会回退到比当前 doc 更小的位置**。

  1. **Points / DocValues / Norms**

→ 同样支持按 docId **随机 seek**,但读出的迭代器依旧**单向**。

  1. **IndexInput 本身**

→ 你可以随时 `seek(pos)` 到任意字节位置,**可以前后跳**,但这是**底层字节流**;

Lucene 的**倒排迭代器不会暴露这种能力**给搜索层。

一句话总结

  • **倒排链、词典、 postings 相关迭代器:单向,不可回退。**

  • **字段、向量、点值、DocValues:可以按 doc 随机定位,但读出的迭代器仍单向。**

  • **底层 `IndexInput`:支持任意 `seek`,但 Lucene 的高层 API 基本不用它来回滚。**

相关推荐
sunxunyong5 天前
ranger与solr&ldap&doris集成部署
solr·lucene
编码者卢布6 天前
【Azure AI Search】Index的字段使用默认Analyzer(standard.lucene) 和 en.microsoft 有什么不同?
microsoft·lucene·azure
2601_961875249 天前
法考资料电子版|pdf|资料已整理
elasticsearch·搜索引擎·pdf·全文检索·solr·lucene·sphinx
2601_961845429 天前
考研公共课资料推荐|英语数学政治|电子版|资料已整理
搜索引擎·中文分词·solr·lucene·sphinx·高考
解决问题no解决代码问题9 天前
漏洞详解|CVE-2026-44825 Apache Solr 隐藏默认账号漏洞(附检测+修复全套方案)
apache·solr·lucene
2601_9618454212 天前
高考真题下载|2025高考全科真题网盘分类整理
搜索引擎·中文分词·solr·lucene·sphinx·高考
2601_9611940215 天前
教资科三美术考什么|初中高中美术题型考点和模板资料
leetcode·elasticsearch·职场和发展·蓝桥杯·pat考试·lucene
2601_9611940218 天前
考研模拟卷谁的比较好|27李林合工大肖四肖八数学英语408PDF
考研·elasticsearch·全文检索·代理模式·lucene·桥接模式·访问者模式
醉颜凉24 天前
Lucene底层原理:倒排索引实现原理与代码实战,彻底吃透搜索引擎核心
搜索引擎·mybatis·lucene
risc1234561 个月前
DocumentsWriterFlushQueue
lucene