What a vector database is for
Retrieval and semantic search work by turning text into embeddings — numeric vectors that capture meaning — and finding the closest matches to a question. A vector database stores those embeddings and searches them fast.
It's the engine behind RAG chatbots, semantic site search, and recommendation features.
- Stores embeddings and runs fast similarity search
- Powers RAG, semantic search, and recommendations
- Finds by meaning, not just keyword match
- Scales to millions of documents with sub-second lookups
- Filters results by metadata (date, category, permissions)
Choosing the right one
Options range from managed services (Pinecone, Weaviate, Qdrant Cloud) to open-source you host yourself (Qdrant, Milvus, or pgvector on Postgres).
For smaller datasets, adding pgvector to a database you already run is often simpler than standing up a new service. We pick based on scale, budget, and whether data can leave your environment.
- Managed (Pinecone, Weaviate, Qdrant Cloud): least ops overhead
- Self-hosted (Qdrant, Milvus): control and data residency
- pgvector: add vectors to existing Postgres, fewer moving parts
- Match to dataset size, query volume, and budget
- Account for metadata filtering and hybrid (keyword + vector) needs
Getting the setup right
The database is only half the job. Results quality depends on how you chunk documents, which embedding model you use, and how you keep the index fresh as content changes.
Poor chunking or a mismatched embedding model produces bad answers even with a perfect database — so we tune and evaluate retrieval, not just stand up the store.
- A chunking strategy tuned to your content
- Embedding-model choice and consistency
- An indexing pipeline that updates as content changes
- A metadata schema for filtering and permissions
- Hybrid search (keyword plus semantic) where it helps
- Evaluation of retrieval quality, not just "it runs"
More on ai integrations
Frequently asked questions
Do I need a dedicated vector database?
Not always. For smaller datasets, pgvector on a Postgres database you already run is often enough. Dedicated vector databases earn their keep at larger scale or higher query volume.
What makes retrieval good or bad?
Mostly the setup around the database — how you split documents into chunks, which embedding model you use, and keeping the index current. A great database with poor chunking still returns poor answers.
Managed or self-hosted?
Managed is faster to launch and lower-maintenance; self-hosted gives you control and keeps data in your environment. If data residency matters, self-hosted or pgvector is usually the call. We'll match it to your constraints.