首页/AI/RAG 与向量库速查/增量索引与文档更新

增量索引与文档更新

文档变更时按 doc_id 删除旧切片、写入新切片,用稳定主键保证幂等;更新链路要覆盖新增、修改、删除三类事件与相关缓存失效。

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

按文档删除旧切片

按文档删除旧切片
# Milvus:按元数据表达式删除
client.delete(collection_name="docs", filter='doc_id == "hr-policy"')

# Qdrant:按 filter 删除
from qdrant_client import models
client.delete(
    collection_name="docs",
    points_selector=models.FilterSelector(filter=models.Filter(
        must=[models.FieldCondition(key="doc_id", match=models.MatchValue(value="hr-policy"))])),
)

再写入新版本

再写入新版本
chunks, vecs = build_chunks(new_text, meta={"doc_id": "hr-policy",
                                           "doc_version": "2026-10-01"})
store.upsert(chunks, vecs)   # 幂等:同一 chunk_id 覆盖
更新后同步失效相关缓存(语义缓存 / 答案缓存),否则用户仍会拿到旧答案。

易错点

  • 个别系统的删除是异步生效,删完要实际检索验证确实查不到
  • chunk_id 用随机值导致每次更新都堆积旧数据,向量库迅速膨胀

数据来源与参考

  • Milvus 官方文档(删除与 Upsert)
  • Qdrant 官方文档(过滤删除)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌