You don't need a standalone vector database. Here's how we build sub-100ms vector and keyword hybrid retrieval pipelines directly inside PostgreSQL with pgvector.
In 2024, every startup spun up a separate Pinecone or Milvus cluster the moment they needed to add AI search. In 2026, the engineering consensus has shifted dramatically: PostgreSQL with pgvector and full-text search handles 99% of production retrieval needs with zero operational bloat.
Why Single-Store RAG Wins
When your vectors live in the same database as your relational data (users, organizations, permissions, timestamps), you can perform pre-filtered vector searches in a single SQL query with transactional ACID guarantees:
-- Single-query hybrid vector + relational lookup
SELECT id, title, content,
(1 - (embedding <=> query_vector)) AS similarity
FROM documents
WHERE organization_id = $1
AND deleted_at IS NULL
ORDER BY embedding <=> query_vector
LIMIT 5;
The Power of Hybrid Search (Dense + Sparse)
Dense vector embeddings (from OpenAI text-embedding-3-small or Cohere) excel at semantic similarity, but struggle with exact keyword lookups (like invoice IDs, error codes, or product SKUs). By combining pgvector's HNSW index with PostgreSQL's built-in tsvector BM25 full-text search, we achieve 98%+ retrieval precision.
Key Takeaways for CTOs and Architects
- Keep your stack simple. Don't add a new distributed database until your vector table exceeds 50 million rows.
- Use HNSW indexing over IVFFlat for sub-10ms similarity queries.
- Always implement Reciprocal Rank Fusion (RRF) to merge vector and text search results cleanly.