Tìm kiếm ngữ nghĩa với pgvector
Hướng dẫn Claude thiết lập và tinh chỉnh tìm kiếm vector (RAG, semantic search) trên PostgreSQL với pgvector.
Lập trìnhTrung cấp★ 1,835⑂ 107Điểm AI 9/10Cập nhật lần cuối: 4 thg 9, 2026
Làm được gì
Cung cấp cho Claude một bộ quy tắc chuẩn để dựng tìm kiếm tương đồng vector trong PostgreSQL.
- Cấu hình mặc định: cột
halfvec(N), khoảng cách cosine (<=>), chỉ mục HNSW (m=16,ef_construction=64),hnsw.ef_search=100 - Chọn loại chỉ mục: ưu tiên HNSW; chỉ dùng IVFFlat khi ghi nhiều hoặc thiếu RAM
- Lượng tử hóa: halfvec mặc định; dữ liệu rất lớn dùng
bit(N)binary quantization kèm re-ranking - Lọc kết hợp vector: iterative scan, prefilter bằng B-tree, partial index, phân vùng bảng
- Nạp dữ liệu, bảo trì, giám sát: COPY rồi mới tạo index, VACUUM/REINDEX, EXPLAIN ANALYZE
- Bảng triệu chứng → nguyên nhân → cách sửa cho các lỗi phổ biến
Phù hợp với ai
- Kỹ sư backend/AI muốn xây RAG hoặc semantic search ngay trên PostgreSQL
- Người đã dùng pgvector nhưng recall thấp hoặc độ trễ p95 tăng đột biến
- Đội ngũ cần giảm chi phí RAM ở quy mô hàng triệu vector
Ví dụ sử dụng
- "Tạo bảng lưu embedding 1536 chiều và chỉ mục phù hợp" → sinh DDL
halfvec(1536)+ HNSW cosine và mẫu truy vấn có ép kiểu tường minh. - "Truy vấn có WHERE category_id trả về ít hơn 10 kết quả" → chẩn đoán HNSW dừng sớm, bật
hnsw.iterative_scan = relaxed_order, tăngmax_scan_tupleshoặc dùng partial index. - "20 triệu vector mà chỉ có 64GB RAM" → đề xuất binary quantization + truy vấn re-ranking lấy 800 ứng viên rồi xếp hạng lại còn 10.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/timescale/pg-aiguide/HEAD/skills/pgvector-semantic-search/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/pgvector-semantic-search từ repo GitHub timescale/pg-aiguide vào ~/.claude/skills/pgvector-semantic-search/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/timescale/pg-aiguide.git && mkdir -p ~/.claude/skills && cp -r pg-aiguide/skills/pgvector-semantic-search ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal.
- Tải kho chứa skill:
git clone https://github.com/timescale/pg-aiguide.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Sao chép skill:
cp -r pg-aiguide/skills/pgvector-semantic-search ~/.claude/skills/ - Khởi động lại Claude Code và thử yêu cầu: "Thiết kế bảng semantic search bằng pgvector".
- Trước khi áp dụng thật, kiểm tra database là PostgreSQL 15+ và đã cài pgvector 0.8.0+ (
CREATE EXTENSION IF NOT EXISTS vector;).
Xem mã nguồn trên GitHub ↗Giấy phép: Apache-2.0