pgvector — a PostgreSQL extension for storing vector embeddings and performing similarity search.
Overview
PGVector enables AI-powered features like semantic search, recommendation engines, and RAG (Retrieval Augmented Generation) pipelines directly in your database.Enabling the Extension
PGVector is available on all Yboard projects. Enable it by running:Creating Vector Columns
Add a vector column to any table:1536) must match the output dimension of your embedding model.
Generating Embeddings with Yboard AI
Use Yboard’s built-in AI service to generate embeddings:Available Embedding Models
Storing Embeddings
Querying Vectors
Distance Operators
Similarity Search with RPC
Create a helper function for similarity search:Building a RAG Pipeline
Basic RAG Flow
- Embed the query — Generate an embedding for the user’s question
- Search — Find similar documents using vector similarity
- Generate — Send matched context + question to an LLM
Production RAG
For production use, consider:- Chunking large documents before embedding
- Using metadata filters alongside vector search
- Caching frequently accessed embeddings
Indexing
HNSW (Recommended)
IVFFlat
Operator Classes
Best Practices
- Choose the right dimensions — Match your embedding model’s output dimensions
- Add indexes once you have >1000 rows for faster queries
- Use cosine distance (
<=>) for normalized embeddings - Chunk documents into smaller pieces (512–1024 tokens) before embedding
- Cache embeddings for frequently repeated queries