Vector Databases (Pinecone, Chroma, Weaviate, FAISS)
Part of the AI Engineer Roadmap
In short
Comparing a query against 50 vectors is easy. Against 50 million, you need a system built for it. Vector databases store embeddings and find the nearest ones fast, along with filters and metadata.
Databases optimized for storing and searching high-dimensional embedding vectors at scale — the storage layer every real RAG system is built on.

Think of it like this
The kirana shop drawers
A kirana uncle has hundreds of little drawers, and similar items live side by side. Ask for 'something like jeera' and he opens the nearby drawers without checking every one. A vector database organises embeddings so it only searches the right neighbourhood.
Watch it happen
Common options and what they are
1/5All of these store vectors and answer 'which stored vectors are closest to this one?'
The big ideas
What you need to know
Approximate nearest neighbours
ANN indexes like HNSW skip most comparisons and return very close matches fast, trading a little accuracy for big speed.
Metadata filters
Store fields like department, date or user id with each vector, and filter before or during search.
Postgres can do it too
The pgvector extension adds vector search to PostgreSQL, handy if your app already uses it.
Choose by stage
Prototype with Chroma or FAISS. For production, weigh hosting effort, scale, filtering and cost.
See it in code
Walk through the code
1# pip install chromadb2import chromadb3 4client = chromadb.PersistentClient(path="./db")5notes = client.get_or_create_collection("notes")6 7notes.add(8 ids=["n1", "n2", "n3"],9 documents=["Lab exams start on 2 Dec", "Library closes at 10 pm", "Fest auditions on Friday"],10 metadatas=[{"type": "exam"}, {"type": "campus"}, {"type": "event"}],11)12 13res = notes.query(query_texts=["when is the practical exam?"], n_results=2)14print(res["documents"][0])1/3A persistent client saves data to a folder so it survives restarts.
Chroma embeds documents with a default model, stores them on disk and returns the nearest matches.
Save yourself the pain
Common mistakes
Oops
Spinning up a cloud vector DB for 500 documents.
Do this instead
Small collections fit in memory with FAISS or Chroma. Add infrastructure only when you need it.
Oops
Storing only vectors, with no original text or source info.
Do this instead
Keep the chunk text, source file and page number as metadata, so you can show and cite results.
Your mission
A notes search box
Quick check
Why do vector databases use approximate nearest neighbour indexes?
Go deeper
- 1Set up a local vector store (Chroma or FAISS) and index a small document set.
- 2Learn the trade-offs between a managed service (Pinecone) and self-hosted options.
- 3Understand indexing strategies (HNSW, IVF) at a conceptual level.
More topics at this stop
Stuck on this topic? Ask an Insider
Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.