Prompt
I'm building an LLM app and need a vector store with metadata filters
Latest observation
Oct 7, 2026
OpenAI APIWeb search: off
If you need a vector store for an LLM app with metadata filtering, here are solid options depending on your scale, ops preferences, and budget:
Good choices
1) Postgres + pgvector
Best for: MVPs, moderate scale, apps that already use Postgres
Why:
- Supports vector search plus SQL metadata filters
- Simple operationally if you already run Postgres
- Easy to combine structured queries with embeddings
Example use case:
WHERE tenant_id = ... AND doc_type = ... AND updated_at > ...
Tradeoff:
- Not as fast/scalable as dedicated vector DBs at very large scale
2) Pinecone
Best for: Production apps that want managed scaling
Why:
- Built-in metadata filtering
- Strong performance and operational simplicity
- Good for high-concurrency retrieval
Tradeoff:
- Managed service cost
- Less flexible than self-hosted options
3) Weaviate
Best for: Teams wanting rich filtering + hybrid search
Why:
- Good metadata filters
- Supports hybrid lexical + vector retrieval
- Schema-driven, feature-rich
Tradeoff:
- More moving parts than pgvector
- Operational overhead if self-hosted
4) Qdrant
Best for: Fast filtering-heavy workloads
Why:
- Excellent payload/metadata filtering
- Strong performance
- Flexible and developer-friendly
Tradeoff:
- Another service to manage if self-hosted, though cloud is available
5) Milvus
Best for: Very large-scale vector workloads
Why:
- Built for scale
- Supports filtering
- Good for heavy retrieval systems
Tradeoff:
- More complex operationally
Quick recommendation
- Starting out / already on Postgres: pgvector
- Want managed + easy scaling: Pinecone
- Need powerful filtering and good performance: Qdrant
- Want hybrid search features: Weaviate
What to look for
Make sure the store supports:
- Metadata filters on fields like
tenant_id,doc_type,source,timestamp - Hybrid search if you need keyword + semantic
- Upserts and partial updates
- Multi-tenancy isolation
- ANN indexing appropriate for your scale
Example filter patterns you may want
- Tenant isolation:
tenant_id = "acme" - Document type:
doc_type IN ["policy", "faq"] - Time constraints:
created_at >= "2026-01-01" - Access control:
allowed_group_ids contains "sales"
If you want, I can also give you:
- a decision matrix,
- a recommended architecture, or
- code examples for LangChain / LlamaIndex / raw SDKs.