Vector databases (Pinecone, Weaviate, Qdrant, Chroma) are great — and overused.
Decision tree
- Under 10K chunks? An in-memory array + cosine similarity. No database needed.
- 10K – 1M chunks? pgvector on Postgres. Same DB as the rest of your app.
- 1M+ chunks or multi-tenant SaaS? Dedicated vector DB (Qdrant self-hosted is a strong default).