PostgreSQL pgvector, a guide for DBA – Part 2: Indexes (update march 2026) 01.03.2026 by Adrien Obernesser Introduction In Part 1 of this series, we covered what pgvector is, how embeddings work, and how to store them in PostgreSQL. We ended with a working similarity search — but on a sequential scan. That works fine(…)
PostgreSQL RAG, MCP, Skills — Three Paradigms for LLMs Talking to Your Database, and Why Governance Changes Everything 15.02.2026 by Adrien Obernesser Introduction Throughout my RAG series, I’ve explored how to build retrieval-augmented generation systems with PostgreSQL and pgvector — from Naive RAG through Hybrid Search, Adaptive RAG, Agentic RAG, and Embedding Versioning (not yet(…)
PostgreSQL RAG Series – Agentic RAG 26.10.2025 by Adrien Obernesser Introduction In earlier parts, we moved from Naive RAG (vector search) to Hybrid RAG (dense + sparse) to Adaptive RAG (query classification and dynamic weighting). Each step improved what we retrieve. Agentic RAG goes further: the LLM decides if(…)
PostgreSQL RAG Series – Adaptive RAG, understanding Confidence, Precision & nDCG 12.10.2025 by Adrien Obernesser Introduction In this RAG series we tried so far to introduce new concepts of the RAG workflow each time. This new article is going to introduce also new key concepts at the heart of Retrieval. Adaptive RAG will allow(…)
PostgreSQL RAG Series – Hybrid Search with Re-ranking 05.10.2025 by Adrien Obernesser Introduction In the first part of this RAG series, we established the fundamentals of Naive RAG with dense vector embeddings on PostgreSQL using pgvector. That foundation works well for conceptual queries, but production systems quickly reveal a limitation:(…)