本资料是一组向量数据库实践模式,面向需要构建向量检索的开发者,按用途提供了五类可参考的代码模式与四条反模式提醒。
主要能力与用法:
- pgvector + HNSW:要求 PostgreSQL 15+ 并安装 pgvector,执行 CREATE EXTENSION IF NOT EXISTS vector; 建表存 embedding 列,用 CREATE INDEX ... USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64); 创建 HNSW 索引,并对 tenant_id 建普通索引以支持过滤查询;查询时通过 SET hnsw.ef_search 调节召回。
- Pinecone:使用 ServerlessSpec 创建索引,按租户划分 namespace 实现隔离,分批 upsert,并注意元数据有大小限制(示例中内容截断到 1000 字符)。
- Qdrant:支持命名向量(多向量)与载荷过滤,可配置 HNSW 参数、标量量化(INT8)与优化器阈值。
- FAISS:用于离线批量索引,支持 flat(精确)、hnsw、ivfpq(压缩)等类型,并提供与暴力搜索对比的 recall@k 评估函数。
- 嵌入漂移检测:通过 KS 检验和中心向量余弦相似度判断分布偏移,并估算重建索引耗时,建议采用影子索引策略。
反模式提醒:Chroma 不适合生产环境(无 SLA、无水平扩展);HNSW 默认参数在 10M 向量规模下召回会下降,需针对规模调参并基准测试;向量必须存储来源、模型版本与摄入时间等元数据,否则重建索引需重新抓取源数据;仅靠元数据过滤做租户隔离属软隔离,敏感场景应使用命名空间级硬隔离。
限制:资料未提供各方案的性能数据、收费标准或部署成本,具体参数需结合实际数据自行基准测试。