pgvector
pgvector是一个开源的 PostgreSQL 扩展,用于高效地存储、查询和处理向量数据
通过在 PostgreSQL 数据库中引入向量数据类型、运算符和索引方法,让用户能够直接在数据库中进行向量相似性搜索和相关操作
https://github.com/pgvector/pgvector
docker安装
docker pull pgvector/pgvector:pg17
该镜像是基于 PostgreSQL 17 的官方镜像构建的,专门用于支持 pgvector
的功能
docker run --name pgvector -e POSTGRES_PASSWORD=pgvector -p 5432:5432 -d pgvector/pgvector:pg17
说明:
-e POSTGRES_PASSWORD=pgvector:
设置了数据库超级用户的密码为 pgvector
默认 postgres 为超级用户,可以直接使用
-p 5432:5432:
将容器的 5432 端口映射到宿主机的 5432 端口
-d pgvector/pgvector:pg17:
后台运行 pgvector/pgvector:pg17 镜像
连接到数据库
psql -h localhost -p 5432 -U postgres
注:
需要有工具psql
sudo apt update
sudo apt install postgresql-client
或
sudo yum install postgresql
启用pgvector扩展
CREATE EXTENSION vector;
测试
CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3)); INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]'); SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;