首页/数据/NoSQL 速查/向量检索方案对照与选型
本包目录(322 条)
MongoDB99 条Elasticsearch89 条ClickHouse56 条时序与列式28 条
选型与架构50 条

向量检索方案对照与选型

向量检索按现有栈与规模选:已有 PostgreSQL 用 pgvector 增加向量列;已有 ES 用 dense_vector 做混合检索;MongoDB 的向量能力主要随 Atlas 提供;独立大规模场景评估 Milvus/Qdrant 等专用库。关键是过滤条件、召回率与运维成本的平衡。

NoSQL 速查数据更新于 2026-10-12

pgvector 示例

pgvector 示例
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE items (id bigserial PRIMARY KEY, name text, embedding vector(768));

-- HNSW 索引:适合在线查询
CREATE INDEX ON items USING hnsw (embedding vector_cosine_ops);

-- 余弦距离近邻查询
SELECT id, name FROM items
ORDER BY embedding <=> '[0.10, 0.22, 0.31]'
LIMIT 10;

方案对照

方案优势注意点
pgvector复用 Postgres 事务与 SQL,可组合过滤数据量大时需要调 HNSW 参数与内存
ES dense_vector向量与全文混合排序、过滤丰富向量字段内存开销高,维度和索引类型要先规划
MongoDB Atlas Vector Search与文档数据同库,减少同步链路自建部署需核对版本与组件支持
专用向量库(Milvus 等)面向大规模向量调优,索引种类多多一套组件与数据同步链路
做 RAG/图搜这类场景时,向量只是召回一环:过滤条件(权限、时间)、重排与召回率评测同样要设计,先用小规模数据集验证效果再扩容量。

易错点

  • 把余弦距离与内积/欧氏距离混用导致结果完全不对,距离函数要与索引 operator class 一致
  • 只测空表或小表的查询速度:向量索引的内存占用随数据量增长,容量要按全量预估

数据来源与参考

  • pgvector README(GitHub pgvector/pgvector)
  • Elasticsearch Guide: k-nearest neighbor search
  • MongoDB Docs: Atlas Vector Search
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌