返回顶部
p

pgvectorpgvector向量搜索

PostgreSQL vector database skill with pgvector extension. Enables vector similarity search, embeddings storage, RAG (Retrieval-Augmented Generation) pipelines, and hybrid search combining vector and keyword search. Use when: storing/retrieving embeddings, building AI applications with vector search, implementing RAG, similarity matching, semantic search, or any use case requiring vector database functionality.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
363
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

pgvector

pgvector 技能

PostgreSQL + pgvector 扩展,用于向量相似性搜索。

快速连接

bash

连接到 pgvector 数据库(默认端口 5433)


psql -h localhost -p 5433 -U damien -d postgres

或使用环境变量

export PGHOST=localhost export PGPORT=5433 export PGUSER=damien export PGPASSWORD= export PGDATABASE=postgres

环境

  • - 主机: localhost
  • 端口: 5433
  • 用户: damien
  • 密码: (空)
  • 数据库: postgres

核心能力

1. 创建向量表

sql
-- 基础向量表(OpenAI 嵌入使用 1536 维)
CREATE TABLE IF NOT EXISTS documents (
id BIGSERIAL PRIMARY KEY,
content TEXT NOT NULL,
embedding vector(1536) NOT NULL,
metadata JSONB,
created_at TIMESTAMPTZ DEFAULT NOW()
);

-- 创建 HNSW 索引以实现快速相似性搜索
CREATE INDEX ON documents USING hnsw (embedding vectorcosineops)
WITH (m = 16, ef_construction = 64);

-- 或使用 IVFFlat 索引(构建更快,搜索较慢)
CREATE INDEX ON documents USING ivfflat (embedding vectorcosineops)
WITH (lists = 100);

2. 插入嵌入向量

sql
-- 手动插入(替换为实际嵌入向量)
INSERT INTO documents (content, embedding)
VALUES (您的文本在此, [0.1, 0.2, ..., 0.1536]);

-- 带元数据插入
INSERT INTO documents (content, embedding, metadata)
VALUES (
人工智能正在改变技术,
[0.1, 0.3, ..., 0.5],
{source: article, author: John}::jsonb
);

3. 向量相似性搜索

sql
-- 余弦相似度(最常用)
SELECT id, content, (1 - (embedding <=> [query_embedding])) AS similarity
FROM documents
ORDER BY embedding <=> [query_embedding]
LIMIT 5;

-- 欧几里得距离
SELECT id, content, (embedding <-> [query_embedding]) AS distance
FROM documents
ORDER BY embedding <-> [query_embedding]
LIMIT 5;

-- 内积(用于归一化向量)
SELECT id, content, (embedding <#> [query_embedding]) AS similarity
FROM documents
ORDER BY embedding <#> [query_embedding]
LIMIT 5;

4. 混合搜索(向量 + 关键词)

sql
-- 结合向量搜索与全文搜索
SELECT id, content,
(1 - (embedding <=> [queryembedding])) AS vectorscore,
tsrank(totsvector(english, content), plaintotsquery(english, search terms)) AS textscore
FROM documents
WHERE content ILIKE %search terms%
ORDER BY (vectorscore 0.7 + textscore 0.3) DESC
LIMIT 10;

5. RAG 管道示例

sql
-- 存储带嵌入向量的文档片段
CREATE TABLE document_chunks (
id BIGSERIAL PRIMARY KEY,
document_id BIGINT REFERENCES documents(id),
chunk_text TEXT NOT NULL,
chunk_embedding vector(1536) NOT NULL,
chunk_index INT NOT NULL
);

-- 检索相关片段用于 LLM 上下文
SELECT chunk_text
FROM document_chunks
WHERE document_id = ?
ORDER BY chunkembedding <=> [questionembedding]
LIMIT 5;

管理命令

检查 pgvector 扩展

sql
SELECT * FROM pg_extension WHERE extname = vector;

表信息

sql
-- 列出所有包含向量的表
SELECT tablename FROM pg_tables WHERE schemaname = public;

-- 检查索引大小
SELECT pgsizepretty(pgtotalrelation_size(documents));

监控

sql
-- 检查查询性能
EXPLAIN ANALYZE
SELECT * FROM documents
ORDER BY embedding <=> [query_embedding]
LIMIT 5;

-- 索引使用统计
SELECT * FROM pgstatuser_indexes
WHERE indexname LIKE %embedding%;

常见操作

更新嵌入向量

sql
UPDATE documents
SET embedding = [new_embedding]
WHERE id = 1;

删除

sql
DELETE FROM documents WHERE id = 1;

批量插入(Python)

python
import psycopg2
import numpy as np

conn = psycopg2.connect(
host=localhost,
port=5433,
user=damien,
password=,
database=postgres
)

cur = conn.cursor()
for text, embedding in documents:
cur.execute(
INSERT INTO documents (content, embedding) VALUES (%s, %s),
(text, embedding.tolist())
)
conn.commit()

距离运算符

运算符描述
<->欧几里得距离
<=>
余弦距离 | | <#> | 内积 | | <=> | 余弦距离(1 - 余弦相似度) |

使用场景

  1. 1. 语义搜索 - 按含义而非关键词查找文档
  2. RAG - 为 LLM 提示检索相关上下文
  3. 推荐系统 - 查找相似物品/产品
  4. 异常检测 - 在嵌入向量中发现异常值
  5. 图像/视频搜索 - 存储和查询视觉嵌入向量

注意事项

  • - 向量维度必须与您的嵌入模型匹配
  • HNSW 更适合准确性,IVFFlat 更适合大数据集
  • 对向量进行归一化以使用余弦相似度
  • pgvector 支持最多 16,000 维

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 pgvector-1776192138 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 pgvector-1776192138 技能

通过命令行安装

skillhub install pgvector-1776192138

下载

⬇ 下载 pgvector v1.0.0(免费)

文件大小: 2.76 KB | 发布时间: 2026-4-15 11:25

v1.0.0 最新 2026-4-15 11:25
Initial release of the pgvector skill, enabling PostgreSQL-based vector search:

- Integrates PostgreSQL with the pgvector extension for vector similarity search and embedding storage.
- Supports creation and indexing of vector tables (HNSW, IVFFlat) optimized for fast and flexible searches.
- Provides SQL examples for inserting embeddings, running vector and hybrid (vector + keyword) searches, and supporting RAG (Retrieval-Augmented Generation) workflows.
- Includes guides for table management, monitoring, updating, deleting, and batch-inserting embeddings via Python.
- Summarizes key use cases: semantic search, RAG pipelines, recommendations, anomaly detection, and image/video search.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部