首页/AI/RAG 与向量库速查/向量索引常见问题清单
Embedding 与检索50 条

向量索引常见问题清单

索引层的高频问题:度量与索引类型不匹配、删除后未整理、分片或参数配置不当、过滤字段无索引导致退化、批量写入后未 flush 导致数据不可见;排查时按数据可见性与召回分层定位。

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

索引层的高频问题

索引层的问题常常静默发生:度量与索引类型不匹配、删除后未整理、分片或参数配置不当、过滤字段没有索引导致退化、批量写入后未 flush 造成数据不可见。排查时要按「数据可见性」与「召回质量」两层分开定位:先确认能搜到,再评估搜得准不准,把两类问题混在一起查会越查越乱。

基本信息

可见性层写入是否已 flush 或 refresh,一致性级别是否允许延迟可见
质量层度量方式、索引参数、模型版本是否被改动过
过滤层过滤字段是否有索引,是否退化为先检索后过滤
排查工具集合统计接口、索引参数打印、固定查询的冒烟测试

典型使用场景

  • 刚导入查不到:判断是可见性延迟还是数据没写进去
  • 召回突然变差:核对索引参数、模型版本与语料快照是否被改
  • 过滤后结果为空:检查过滤字段索引与条件写法
  • 重建期间服务异常:确认是否做了双写或别名切换
  • 上线前体检:用固定查询跑冒烟测试,作为发布前置检查

排查入口示例

排查入口示例
print(client.get_collection_stats("kb"))   # 文档数是否等于预期
print(index.nprobe, index.ntotal)           # FAISS 参数与向量总量
# 用固定查询跑冒烟测试:把结果与上次记录对比,确认索引可用
# 指标记入巡检脚本,异常时第一时间告警而不是等用户反馈

症状与排查方向

症状先查什么常见根因
刚写入就搜不到是否已 flush 或 refresh,可见性是否延迟一致性级别与写入确认机制
偶发召回骤降重建是否进行中、分片是否异常索引参数被改或分片不可用
过滤后结果为空过滤字段是否有索引字段类型不匹配或条件写错
分数整体变差度量方式与模型版本是否被改动归一化或模型升级导致分布变化
数据可见性与召回质量要分开排查:先确认能搜到,再评估搜得准不准,两件事的修法完全不同。
把冒烟测试做成例行任务:固定几条查询、记录返回条数与分数区间,指标越界就告警,比等着用户报告问题更早发现问题。

易错点

  • 只看服务日志没有报错就默认索引正常,召回问题多数静默发生
  • 重建索引期间未做双写或别名切换,查询命中空索引
  • 删除数据后未整理索引,重复运行同一查询仍返回已删内容
  • 把可见性延迟当成数据丢失,反复重导造成重复数据

数据来源与参考

  • Milvus 官方文档(故障排查与一致性)
  • FAISS wiki(Index 概览)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌