pgvector

pgvector Postgres extension. Covers vector types, distance operators, indexing (HNSW/IVFFlat), and client library usage. Use when storing vectors in PostgreSQL, running nearest-neighbor searches, or configuring HNSW/IVFFlat indexes. Keywords: pgvector, PostgreSQL, vector search, HNSW, IVFFlat.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pgvector" with this command: npx skills add itechmeat/llm-code/itechmeat-llm-code-pgvector

pgvector

PostgreSQL extension for storing vectors and running exact/approximate nearest-neighbor search in SQL.

Quick Navigation

  • Installation: references/installation.md
  • Core concepts and SQL recipes: references/core.md
  • Indexing (HNSW / IVFFlat) and tuning: references/indexing.md
  • Filtering, iterative scans, and performance: references/performance-and-filtering.md
  • Types and functions reference (vector/halfvec/bit/sparsevec): references/types-and-functions.md
  • Troubleshooting: references/troubleshooting.md
  • Client libraries (priority):
    • Python: references/python.md
    • Go: references/go.md
    • Node (JS/TS): references/node.md
    • Java: references/java.md
    • Swift: references/swift.md

When to Use

  • You need vector similarity search inside Postgres (keep vectors with relational data).
  • You want SQL-native ANN indexes (HNSW or IVFFlat) with tunable recall/speed.
  • You want consistent patterns to store/query embeddings across multiple application languages.

Quick Start (already installed)

Prerequisite: pgvector is installed on the Postgres server. See: references/installation.md.

Enable per database and run a first query:

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;

Choosing distance operators

  • L2 (Euclidean): use <->
  • Inner product: use <#> (note: returns negative inner product)
  • Cosine distance: use <=>
  • L1: use <+>
  • Binary vectors: Hamming <~> / Jaccard <%>

Indexing rules of thumb

  • Exact search: no pgvector index; may use parallel scan on large tables.
  • ANN search:
    • Prefer HNSW for better speed/recall, higher build time/memory.
    • Use IVFFlat when you need faster builds/lower memory.
  • Create one index per distance function/operator class you plan to use.

Critical Prohibitions / Gotchas

  • Approximate indexes can change results (recall vs speed).
  • Index usage typically requires ORDER BY <distance-op> ... LIMIT ....
  • <#> returns negative inner product; multiply by -1 to get the actual value.
  • NULL vectors are not indexed; for cosine distance, zero vectors are not indexed.

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

react-testing-library

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

social-writer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

commits

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

mantine-dev

No summary provided by upstream source.

Repository SourceNeeds Review