Storage and search for embeddings — the high-dimensional vectors that capture the meaning of text, images, and audio. The memory of every RAG system.
← Back to AI Landscape| Database | Type | Why pick it |
|---|---|---|
| Pinecone | Managed SaaS | Easiest production setup; auto-scaling, no ops. |
| Weaviate | Open-source / cloud | Built-in vectorizer modules; GraphQL API. |
| Qdrant | Open-source / cloud | Rust-built; fast filtering + payloads. |
| Milvus / Zilliz | Open-source / cloud | Battle-tested at billion-vector scale. |
| Chroma | Open-source / lite | Local-first; favorite for prototyping. |
| pgvector (Postgres) | Extension | Reuse your existing SQL DB; transactions + vectors. |
| Elasticsearch / OpenSearch | Search engine + vectors | Hybrid search; you may already run it. |
| Redis (RediSearch) | In-memory + vectors | Sub-millisecond ANN for hot data. |
| MongoDB Atlas Vector Search | Document DB + vectors | Vectors alongside JSON documents. |
| LanceDB | Embedded / Rust | File-based, Parquet-friendly, multi-modal. |
| FAISS | Library (Meta) | The original ANN library; powers many of the above. |
An embedding model (OpenAI text-embedding-3, Cohere Embed, Voyage, Nomic) takes a chunk of text and returns an N-dimensional vector. Semantically similar text → vectors that are close to each other.
from openai import OpenAI client = OpenAI() v = client.embeddings.create( model="text-embedding-3-small", input="How do I reset my password?", ).data[0].embedding # list of 1536 floats
You rarely just want "similar things" — you want similar things belonging to user X, in the past 30 days, of type Y. Modern vector DBs support metadata filters that prune the search space before (or during) the ANN search.
| Scenario | Pick |
|---|---|
| Already on Postgres, < 10M vectors | pgvector |
| Hosted, zero ops | Pinecone, Vertex AI Vector Search |
| Self-host, billions of vectors | Milvus, Qdrant |
| Already running Elasticsearch | Elasticsearch / OpenSearch |
| Local prototyping | Chroma, LanceDB |
| Need it on the edge | SQLite + sqlite-vec, LanceDB |