文章目录pgvectorPostgreSQL 原生向量搜索扩展1、这玩意儿是干嘛的2、为什么要用它3、怎么安装使用4、适合哪些场景pgvectorPostgreSQL 原生向量搜索扩展pgvector 在 GitHub 上已经拿到 21.2K Star 了。这个开源工具专门给 PostgreSQL 加了向量相似性搜索能力向量可以跟业务数据存在同一个库不需要额外搭向量数据库。1、这玩意儿是干嘛的就是在 PostgreSQL 里加向量存储和搜索的能力不需要单独部署额外的数据库组件。支持精确和近似最近邻搜索覆盖单精度、半精度、二进制、稀疏四种向量类型内置L2距离、内积、余弦距离、L1距离、汉明距离、Jaccard距离六种算法。所有带PostgreSQL客户端的语言都能直接用还继承PostgreSQL本身的ACID合规、时间点恢复、联表查询等所有特性。向量规模大的场景可以用量化功能做水平扩展。2、为什么要用它做过RAG或者向量检索的人都知道单独搭向量数据库的麻烦业务数据存在关系库向量存在向量库两边要做数据同步一致性很难保证查询的时候还要跨库做关联性能损耗大。pgvector把向量存储和检索直接集成在PostgreSQL里向量跟业务表存在同一个库不需要做数据同步支持直接跟业务表做联表查询不用额外维护一套数据库组件运维成本低很多。支持HNSW和IVFFlat两种近似索引内存占用可控查询性能满足绝大多数生产场景需求。3、怎么安装使用Linux和Mac环境直接编译安装cd/tmpgitclone--branchv0.8.2 https://github.com/pgvector/pgvector.gitcdpgvectormakemakeinstall也可以用Docker、Homebrew、APT、Yum等方式一键安装Windows环境可以用nmake编译或者Docker部署。启用扩展CREATEEXTENSION vector;建表存向量CREATETABLEitems(id bigserialPRIMARYKEY,embedding vector(3));插入向量INSERTINTOitems(embedding)VALUES([1,2,3]),([4,5,6]);查询最近邻SELECT*FROMitemsORDERBYembedding-[3,1,2]LIMIT5;4、适合哪些场景做RAG系统、需要存向量同时关联业务数据的开发者不想单独维护向量数据库、希望降低架构复杂度的团队已经在用PostgreSQL、需要加向量检索能力的业务场景开源地址https://github.com/pgvector/pgvectorL、需要加向量检索能力的业务场景开源地址https://github.com/pgvector/pgvector