PostgreSQL常见扩展
- pgvector
- PostGIS
- TimescaleDB
- pg_stat_statements
- pg_trgm
- hstore
- pgcrypto
- pg_repack
- postgres_fdw
pgvector
- pgvector = 给 PostgreSQL 增加向量检索能力
<->是 pgvector 定义的一个距离操作符, 来用- 计算两个向量之间欧式距离
SELECT
id,
embedding <-> '[0.1, 0.2, 0.3]' AS distance
FROM documents
ORDER BY embedding <-> '[0.1, 0.2, 0.3]'
LIMIT 10;
pg_trgm
pg_trgm是 PostgreSQL 的一个扩展,用来做基于 trigram(三字符片段)的字符串相似度匹配和模糊搜索- 简单来说,pg_trgm用来做关键词搜索,利用字符串相似度和模糊搜索
使用
- 启用扩展 → 建 trigram 索引 → 用
LIKE/ILIKE
场景
- 利用pgvector + pg_trgm 来做混合检索
- 向量检索 + 关键词/模糊搜索 的混合检索
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE TABLE documents (
id bigserial PRIMARY KEY,
content text NOT NULL,
embedding vector(1536)
);