Vector Databases Compared — Qdrant, pgvector, Azure AI Search, Pinecone, Weaviate
Five vector stores, one .NET engineer's honest take. The right choice depends on your scale, your ops appetite, and whether you already pay an Azure bill.
Every vector DB looks the same in a demo. They diverge in the cost column, the SDK column, and the "do I want to run this myself" column. After shipping with all five on different projects, here's the unsentimental version.
| Store | .NET SDK | Hosting | Hybrid search | 1M vec cost/mo | 10M vec cost/mo |
|---|---|---|---|---|---|
| Qdrant | Official, solid | Self / Cloud | Yes (built-in) | ~$25 (1 node) | ~$300 |
| pgvector | npgsql + a few lines | Whatever you run Postgres on | DIY | Free if you have Postgres | ~$100 (bigger Postgres) |
| Azure AI Search | First-class | Managed | Yes (built-in RRF) | ~$75 (S1) | ~$750 (S2) |
| Pinecone | Decent | Managed only | Sparse-dense yes | ~$70 | ~$700 |
| Weaviate | OK | Self / Cloud | Yes | ~$25 self | ~$400 |
The same upsert+search in each (sketched, sparing the imports):
// Qdrant
await client.UpsertAsync("docs", new[] { new PointStruct(Guid.NewGuid(), vec, payload) });
var hits = await client.SearchAsync("docs", qVec, limit: 5);
// pgvector
await db.ExecuteAsync("INSERT INTO docs(id, vec, text) VALUES (@id, @vec, @text)", new {...});
var hits = await db.QueryAsync("SELECT * FROM docs ORDER BY vec <-> @q LIMIT 5", new {...});
// Azure AI Search
await client.UploadDocumentsAsync(new[] { new SearchDocument { ... } });
var hits = await client.SearchAsync("*", new SearchOptions { VectorSearch = new(...) });
The honest recommendation matrix:
Prototype / weekend project: pgvector. You probably already have Postgres. Don't introduce a new service for 50,000 vectors. The "what if we scale" worry is premature. You can migrate later. You probably won't.
Small SaaS (under 5M vectors): Qdrant self-hosted if you already run Docker. Azure AI Search if you're an Azure shop and want it managed. pgvector still works fine up here for many use cases.
Enterprise / Azure shop: Azure AI Search. The hybrid search and RRF are first-class, integration with Azure OpenAI is paved, and your security team already approved it. Cost is meaningful but predictable.
On-prem / data sovereignty: Qdrant. The license is right, the SDK is right, and self-hosting is genuinely smooth.
The one I'd avoid for new projects: Pinecone. It's good. The .NET SDK is decent. But it's managed-only and the cost crosses uncomfortable at 10M+ vectors. Pick this only if you specifically want zero-ops and you're OK with the lock-in.
A note on pgvector that might save you a migration: it's not "the cheap version." For under ~3M vectors with sensible HNSW indexes, it's competitive on latency with the specialised stores. The drop-off comes at scale, with multi-tenant filtering, and when you need real hybrid search (BM25 + vectors with proper RRF). At that point you graduate. Before that, you don't need to.