Qdrant

qdrant/qdrant (read quadrant) β€” a vector similarity search engine and vector database written in Rust. It stores points (a vector plus an arbitrary JSON payload) and serves fast nearest-neighbour search with strong filtering β€” combining semantic similarity with structured constraints on the payload (faceted search, metadata filters). Production-ready API, fast and reliable under load, self-hostable via a single Docker image, or run as managed Qdrant Cloud (with a free tier).

In the LLM App Engineering Stack this is the vector-storage / retrieval lane β€” where embeddings from an embedder (VoyageAI) over chunks (Chonkie) live and get searched at query time. It’s the classic backbone of embedding-based RAG; worth pairing in the mind with the vectorless counter-approaches I track (PageIndex, Structural Retrieval for Code) that argue β€œdon’t always reach for a vector DB.”

Description

Download or use

# self-host
docker run -p 6333:6333 qdrant/qdrant
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams
 
client = QdrantClient("localhost", port=6333)
client.create_collection(
    "docs",
    vectors_config=VectorParams(size=1024, distance=Distance.COSINE),
)
# upsert points (vector + payload), then query with filters

πŸ—’οΈ Description

🧩 Core capabilities

  • Filtered vector search β€” the differentiator: rich payload filters applied during search, not as a slow post-filter β€” good for faceted/metadata-constrained retrieval.
  • Written in Rust β€” fast and memory-safe under high load; published benchmarks.
  • Payloads β€” attach JSON to each vector; return it with results (no second lookup).
  • Production API β€” REST + gRPC, official clients (Python, JS/TS, Rust, Go…).
  • Deploy anywhere β€” Docker/K8s self-host, or managed Cloud with a free tier; quantization + on-disk storage for scale.
  • Agent Skills + integrations across the RAG ecosystem.

✍️ Reasoning for

  • Default vector store β€” when a build genuinely needs embedding search, Qdrant’s filtering + Rust performance make it a strong, self-hostable default (over pgvector when scale/filtering matter).
  • Metadata-aware retrieval β€” β€œfind similar chunks from this document / after this date / of this type” is a first-class query, not a hack.
  • No lock-in β€” Apache-2.0 and self-hostable; Cloud is an option, not a requirement.

Weak points: it’s infrastructure to run and keep healthy; for small corpora pgvector or even in-memory is simpler; and the whole vector-DB approach isn’t always the right retrieval strategy β€” structural/vectorless retrieval (PageIndex, GrepRAG) can beat it for code and long structured docs.

Alternatives considered

  • pgvector (Postgres) β€” reuse your existing DB; simplest for modest scale, weaker on large-scale ANN + filtering.
  • Weaviate / Milvus β€” comparable open-source vector DBs; benchmark on your filter patterns + scale.
  • Pinecone β€” fully managed, zero-ops, proprietary + paid.
  • PageIndex / vectorless retrieval β€” skips embeddings entirely for long docs; different trade-off, sometimes better recall + explainability.

πŸ”— Resources


Template: tool