一、pgvector简介pgvector 是 PostgreSQL 的一个扩展它让你能在关系型数据库中直接存储和检索向量数据。二、pgvector编译并导入postgreSQL1.安装PostgreSQL数据库需要14版本以上PostgreSQL: The worlds most advanced open source database2.安装Developer Command Prompt客户端工具通过Visual Studio使用C桌面3.生成pgvector编译文件通过Developer Command Prompt工具运行如下命令set PGROOTC:\Program Files\PostgreSQL\18cd %TEMP%git clone --branch v0.8.2 https://github.com/pgvector/pgvector.gitcd pgvectornmake /F Makefile.win clean # 建议先清理一下旧的编译文件nmake /F Makefile.winnmake /F Makefile.win install注意在install的时候可能会涉及到PostgreSQL安装文件的访问权限问题三、启用pgvector扩展1.通过Postgre客户端执行启用pgvector扩展命令-- 启用pgvector扩展扩展的SQL名称是 vector CREATE EXTENSION IF NOT EXISTS vector;2.创建带向量列的表-- 创建一个表其中 embedding 列是一个三维向量 CREATE TABLE items ( id bigserial PRIMARY KEY, content text, embedding vector(3) -- 指定向量维度为3 );3.插入向量数据-- 插入两条向量数据 INSERT INTO items (content, embedding) VALUES (数据1, [1.2, 0.8, 0.1]), (数据2, [1.1, 0.9, -0.2]);4.数据向量检索-- 找到与 [1.0, 1.0, 0.0] 最相似的5个项 SELECT content, embedding - [1.0, 1.0, 0.0] AS distance FROM items ORDER BY distance;5.操作符操作符距离/相似度类型使用场景与说明-欧几里得距离 (L2)最直观的距离概念空间中两点间的直线距离。值越小越相似。余弦距离关注方向的差异而非大小。1减去余弦相似度得到。值越小越相似。#负内积常用于计算向量相似度但PostgreSQL只支持升序因此返回负值。值越小越相似。曼哈顿距离 (L1)两点在坐标系中的绝对轴距总和