Full Stack • Java • System Design • Cloud • AI Engineering

Vector Databases

Learn vector databases for AI applications, including embeddings, similarity search, metadata filtering, indexing, RAG storage, and common production design considerations.

What You Will Learn

In this article, you will learn:

  • What a vector database is.
  • Why vector databases are used with embeddings.
  • How similarity search works.
  • How metadata filtering improves retrieval.
  • How vector databases support RAG.

Introduction

A vector database stores embeddings and searches them by similarity.

Instead of asking:

Which document contains this exact keyword?

you ask:

Which document is closest in meaning?

What a Vector Database Stores

A vector database usually stores:

  • Text chunk.
  • Embedding vector.
  • Metadata.
  • Source information.
  • IDs and timestamps.

Example:

Field Example
id policy-101-chunk-03
content Cancellation requires written notice
embedding [0.11, -0.72, 0.34, ...]
metadata product=auto, state=TX

Vector Search Flow

flowchart TD
    A["User question"] --> B["Create embedding"]
    B --> C["Search vector database"]
    C --> D["Find similar chunks"]
    D --> E["Return ranked results"]

Vector databases compare query vectors against stored vectors.

Common similarity measures:

  • Cosine similarity.
  • Dot product.
  • Euclidean distance.

Metadata Filtering

Metadata filtering narrows search results.

Example:

Find chunks similar to "cancel policy"
where product = "auto"
and state = "TX"

This improves accuracy because the system retrieves context from the right business scope.

Vector Database Indexes

Large vector stores need indexes for fast search.

Common concepts:

Concept Meaning
Approximate nearest neighbor Finds close matches quickly
HNSW Popular graph-based vector index
Top K Number of results to return
Similarity threshold Minimum relevance score

Vector Databases in RAG

RAG uses vector databases as the retrieval layer.

flowchart LR
    A["Documents"] --> B["Chunks"]
    B --> C["Embeddings"]
    C --> D["Vector database"]
    E["Question"] --> F["Question embedding"]
    F --> D
    D --> G["Relevant chunks"]
    G --> H["LLM answer"]

Common Options

Vector search can be implemented with:

  • PostgreSQL with PGVector.
  • OpenSearch or Elasticsearch vector search.
  • Pinecone.
  • Weaviate.
  • Chroma.
  • Milvus.

Production Considerations

  • Keep original source links.
  • Store tenant and access metadata.
  • Enforce authorization before returning context.
  • Track embedding model version.
  • Re-index when documents change.
  • Evaluate retrieval quality.

Interview Questions

What is a vector database?

A vector database stores embedding vectors and supports similarity search over those vectors.

Why are vector databases useful for RAG?

They retrieve relevant document chunks based on meaning, so the LLM can answer using trusted context.

What is metadata filtering?

Metadata filtering restricts vector search results using structured fields such as tenant, product, department, language, or document type.

Summary

Vector databases make semantic search practical. They are essential for RAG, document assistants, recommendation systems, and AI memory.

Loading likes...

Comments

Share a question, correction, or practical insight about this article.

Loading approved comments...