Prompt
Help me choose a vector database for embeddings with metadata filtering and frequent updates
Latest observation
Oct 10, 2026
OpenAI APIWeb search: off
If your main requirements are:
- vector search over embeddings
- metadata filtering
- frequent updates/upserts
- likely production use
then the best choice depends mostly on your scale, latency needs, and how much operational complexity you want to manage.
Short recommendation
Best all-around choice for most teams: Postgres + pgvector
Choose this if:
- your dataset is not huge (roughly up to a few million vectors, sometimes more with tuning)
- you want strong metadata filtering
- you already use Postgres
- you need frequent updates and transactional consistency
- you want the simplest architecture
Why it fits:
- metadata filtering is excellent because it’s just SQL
- updates/inserts are straightforward
- operationally simpler than running a dedicated vector DB
- good for hybrid workloads where metadata queries matter a lot
Tradeoff:
- not the fastest at very large scale compared with specialized vector DBs
- ANN performance and tuning matter a lot
Best specialized vector DB for filtering + updates: Qdrant
Choose this if:
- you want a dedicated vector database
- metadata filtering is important
- you expect frequent upserts/deletes
- you want solid performance without too much complexity
Why it fits:
- strong payload/metadata filtering
- good support for upserts and deletes
- relatively easy to operate
- works well for dynamic datasets
Tradeoff:
- less flexible than SQL for complex relational queries
- you’ll manage a separate system from your primary DB
Best for high scale / heavy production search: Milvus
Choose this if:
- you expect large-scale vector workloads
- you need high throughput and scale
- you’re okay with more operational complexity
Why it fits:
- built for scale
- supports filtering and updates
- strong ecosystem for vector search
Tradeoff:
- more moving parts
- heavier to operate than Qdrant or pgvector
What I’d pick by scenario
1. Startup / MVP / product with rich metadata
Pick: Postgres + pgvector
- easiest to build
- no extra infrastructure if you already have Postgres
- excellent filtering and transactional updates
2. Need dedicated vector search, but want practicality
Pick: Qdrant
- probably the best balance of simplicity, filtering, and update friendliness
3. Very large scale or long-term search infrastructure
Pick: Milvus
- better when scale dominates everything else
Important considerations for your use case
Metadata filtering
If you need filters like:
tenant_id = Xstatus IN (...)created_at > ...tags contains ...
Then:
- Postgres is strongest and most flexible
- Qdrant is very good
- Milvus is good, but filtering semantics can be less convenient than SQL
Frequent updates
If vectors or metadata change often:
- prefer systems that handle upserts well
- avoid designs that require expensive reindexing or batch-only workflows
Good choices:
- Qdrant
- Postgres + pgvector
- Milvus if scale justifies it
Hybrid search
If you want both:
- keyword search
- metadata filters
- embeddings
Then:
- Postgres can be convenient for combining everything
- Elasticsearch/OpenSearch can work, but they’re usually less ideal than a dedicated vector DB for pure embeddings
- Qdrant integrates nicely with app-side ranking
Simple decision rule
- Use Postgres + pgvector if you want the simplest and most flexible solution.
- Use Qdrant if you want a dedicated vector DB with strong filtering and frequent updates.
- Use Milvus if you need maximum scale and can handle more ops complexity.
My default recommendation
For your stated needs, I’d usually recommend:
Qdrant if you want a dedicated vector DB, or Postgres + pgvector if you want the simplest architecture.
If you want, I can also give you:
- a feature comparison table of Pinecone vs Qdrant vs Milvus vs pgvector, or
- a recommendation based on your exact workload if you share:
- vector count
- embedding dimension
- QPS
- update rate
- filter complexity
- cloud/on-prem preference