详解
在关系库里做向量检索的最省心方案:CREATE EXTENSION vector 一条命令,
vector(512) 当普通列用,<=> 余弦距离排序。
选它而不是独立向量库的理由:数据不出 PG——备份、事务、权限一套体系管到底, 且向量只是派生投影,换库换模型都能重建。
深挖
- 一万条以下不要建索引:顺扫余弦毫秒级且 100% 召回,ivfflat/HNSW 是几十万条量级的工具。
- asyncpg 没有内建 vector 编解码:参数传
'[0.1,0.2,...]'字符串再::vector。 - 带 WHERE 过滤的向量查询有 post-filter 召回陷阱,0.8 版的 iterative index scan 才缓解——小库顺扫恰好没这个问题。