什么是 索引器(Indexer)?

更新于

索引器(Indexer)是把处理后的文档转换为持久化检索记录,并将文本、向量嵌入、稀疏特征、元数据或关系写入一个或多个可搜索存储的管线组件。

快速了解

规范文档官方规范

工作原理

用期望状态对账已索引状态

把每次摄取结果视为按稳定文档或分块 ID 建立的期望清单。清单中消失的记录可能需要删除,相同 ID 但版本变化的记录需要 upsert,版本未变的记录则可跳过。这比只追加写入更安全,因为它能处理重命名、过滤和来源删除。所有操作都应具备幂等性,避免超时重试生成重复记录。

为每个检索兼容边界建立版本

稠密检索要求索引端与查询端使用兼容的嵌入模型、预处理、向量维度和相似度约定;稀疏分析器、元数据 Schema 与分块策略也会改变查询行为。应把这些值写入索引清单。遇到破坏性变化时,构建独立版本、完成验证后再显式切流,并保留回滚窗口,不能把不兼容记录混写在原索引中。

面向部分失败和可验证切换设计

混合索引可能把向量、词法字段和元数据写入无法共享事务的多个系统。应以唯一运行 ID 暂存任务,记录逐条结果,只重试失败且幂等的操作,并暴露对账计数。切流前对比期望与实际 ID,抽样检查权限和内容哈希,运行检索测试,并验证删除已传播;一次批量请求成功不能证明索引完整。

主要特点

  • 负责准备和持久化写入,数据库负责存储与搜索执行
  • 使用稳定记录 ID、来源版本及幂等 upsert 和删除语义
  • 按需携带文本、向量、稀疏字段、元数据、权限和血缘
  • 在索引清单中固定嵌入、分析器、分块和 Schema 兼容信息
  • 支持分阶段重建、显式切流、回滚和全量对账
  • 暴露逐条失败和完整性,而不是掩盖批次中的部分成功

常见用途

  1. 为 RAG 检索器写入带权限的分块和向量
  2. 维护用于混合搜索的同步词法记录与向量记录
  3. 更换嵌入模型或分块策略后构建新的索引版本
  4. 删除由已移除或已撤权来源派生的全部记录
  5. 在蓝绿切换前比较索引清单和检索质量

示例

loading...
Loading code...

常见问题

索引器和向量数据库是一回事吗?

不是。向量数据库只是可能采用的一种存储与搜索后端。索引器是写入侧管线组件,负责准备身份、向量、文本字段、元数据和权限,再把变化应用到一个或多个后端。同一个索引器可以同时协调向量存储与词法搜索引擎。

什么样的索引操作才具备幂等性?

使用同一稳定记录 ID 和版本重复执行操作后,存储应收敛到相同状态且不产生重复。实现时需要确定性 ID、upsert 语义、显式删除和持久化运行清单。每次重试都生成随机 ID 会破坏幂等,也让过期记录难以定位。

RAG 索引什么时候需要新版本?

当变化会使新旧记录不兼容或无法公平比较时,应创建新版本,例如更换嵌入模型或维度、Tokenizer、分块策略、分析器,或修改破坏兼容性的元数据 Schema。普通内容更新通常可以在同一版本内做幂等 upsert。

索引器如何传播来源删除?

维护每条派生记录到来源 ID 的关系。来源删除或失去授权时,枚举并删除全部向量、词法、图和元数据记录,再验证其确实不存在。定期执行期望状态与实际状态对账,可以发现故障期间丢失的墓碑事件。

切换检索流量前如何验证新索引?

对比期望与存储中的记录数量和 ID,检查失败批次,抽样核对内容哈希与权限,验证向量维度和模型标识,并运行固定检索评测。所有检查通过后再切流,同时保留旧索引和明确的回滚路径。

相关术语

相关文章