首页/AI/RAG 与向量库速查/向量索引重建操作模式

向量索引重建操作模式

重建索引(换模型、换度量、换算法)的标准模式:新集合/新表写入副本数据 → 构建完成并验证 → 别名或流量切换 → 观察期后清理旧集合,全程可回滚。

RAG 与向量库速查AI更新于 2026-10-13

向量索引重建是什么

重建索引指在换 embedding 模型、换距离度量、换索引算法或调整 schema 之后,重新生成全部向量与索引。工程上成熟的模式是旁路重建:新开一个集合或表,用同一份原始数据按新配置重新编码写入,构建完成并跑评测验证后,再用别名或路由把流量切过去,观察期稳定后再清理旧集合。关键要求是两个:切换点可回滚,重建期间产生的新增数据不能丢。

基本信息

触发场景换 embedding 模型与维度、换度量、换索引算法或参数
切换手段集合别名、配置中心改集合名、网关路由
数据一致性重建期间双写,或按时间戳补差
验证方式固定评测集对比 recall@k 与 MRR
回滚方式别名指回旧集合,或路由权重回退
窗口安排全量重算耗时长,要预估并选择低峰期

典型使用场景

  • embedding 模型升级:新查询向量与旧库向量不可比,只能全量重算
  • 维度变化:从 1024 维降到 512 维以省存储与算力
  • 把暴力检索换成 ANN 索引,或从 IVFFlat 换到 HNSW
  • 索引参数调整后需要重建才对全量数据生效
  • 分片或集群扩容后重新分布数据,均衡负载

别名切换思路

别名切换思路
# 方案一:应用侧配置切换(配置中心改集合名)
# 方案二:集合别名,读流量始终打别名
client.create_alias(collection_name="kb_v2", alias="kb")   # 指向新集合
# 出问题时把别名指回旧集合即完成回滚
# 重建期间新数据双写或事后补差,避免增量丢失

切换方式对照

方式切换粒度回滚成本
集合别名秒级指回旧集合即可,成本最低
配置中心改集合名取决于发布流程需再次配置并生效
网关按权重路由可灰度按比例回退,适合逐步放量
域名与 DNS受缓存 TTL 影响回退慢,不作为首选
重建期间的新写入必须双写或事后补差,否则切换后这段时间的增量数据会永久缺失。
切换前抽样比对内容而不只是条数:payload 字段映射错误、引用信息丢失这类问题只有比对内容才能发现。

易错点

  • 切换后才发现新集合数据少于预期:差异批次分散在多个时间点,补齐成本极高
  • 没有回滚路径:旧集合提前删除或配置不可逆,验证失败后只能原地抢修
  • 新旧向量混用:新模型编码的查询打旧索引,相似度毫无意义但系统不报错
  • 重建窗口不做资源隔离:全量重算的写入与线上检索抢资源,正常业务被拖慢

数据来源与参考

  • Milvus 官方文档(Collection Alias)
  • Elasticsearch 官方文档(Aliases)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌