All Tools
Qdrant logo

Qdrant

Qdrant is an open-source vector database written in Rust. Fast filtered search, aggressive memory optimisation, and easy to self-host.

What is Qdrant?

Qdrant is an open-source vector database written in Rust, designed for fast approximate nearest-neighbour search over high-dimensional embeddings. It stores vectors alongside JSON metadata — called payloads — and lets you filter on that metadata during the search itself rather than after the fact. This makes Qdrant particularly well-suited for production RAG (Retrieval-Augmented Generation) systems, semantic search applications, and recommendation engines where you need to combine semantic similarity with business logic constraints at query time. It is self-hostable under the Apache 2.0 licence, runs in Docker with a single command, and offers a managed cloud for teams that do not want to run their own infrastructure.

How Qdrant works

Vector databases store numerical representations of data — called embeddings — rather than raw text or objects. When you generate an embedding for a query, the database finds the stored vectors closest to it in the high-dimensional space. That similarity corresponds to semantic relatedness: two pieces of text that mean similar things will produce vectors that are geometrically close, even if they share no keywords.

Qdrant’s core data model has three layers:

  1. Collections: The top-level namespace. A collection holds all the vectors for a given dataset — your product catalogue, document store, or user event history.
  2. Points: The individual records. Each point has a unique ID, one or more vectors (you can store multiple named vectors per point for multi-modal use cases), and an optional JSON payload with metadata like source, date, category, or any field you want to filter on.
  3. Index: Qdrant builds an HNSW (Hierarchical Navigable Small World) graph over the vectors. HNSW is the industry-standard algorithm for approximate nearest-neighbour search — it trades a small accuracy margin for orders-of-magnitude faster query times compared to exact brute-force search.

The key architectural detail that sets Qdrant apart is how it handles filtered search. Most vector databases run the vector search first, then apply metadata filters to the result set — which can be inaccurate when the unfiltered candidates do not contain enough qualifying results. Qdrant integrates the filter into the HNSW traversal itself, so the index only visits nodes that satisfy the filter conditions. This keeps query latency predictable regardless of how selective the filter is.

Qdrant also offers quantisation as a production lever: you can compress stored vectors into int8 (scalar quantisation, 4x memory reduction) or single-bit format (binary quantisation, up to 40x memory reduction), with the original full-precision vectors optionally kept on disk for re-scoring.

Who uses Qdrant?

AI engineers building production RAG systems are Qdrant’s primary users. If you are connecting a language model to a private document corpus — internal knowledge base, product documentation, legal contracts, support tickets — Qdrant is where the document embeddings live and where retrieval happens at query time.

ML engineers working on semantic search and recommendation systems use Qdrant when they need filtered search at scale. A product search system that needs to combine semantic relevance with in-stock status, price range, and category constraints is a natural fit. So is a recommendation engine that stores user behaviour embeddings and needs to find nearest neighbours within a specific demographic or content category.

Data scientists building agent memory systems use Qdrant to store and retrieve episodic memories for long-running AI agents — persistent storage of past interactions, facts, or observations that an agent can query when relevant context might exist in prior sessions.

Qdrant use cases

RAG document retrieval. A knowledge base where documents are embedded and stored in Qdrant, and incoming user questions are embedded at query time to retrieve the most relevant chunks before passing them to an LLM. Payload filters let you scope retrieval to specific document types, date ranges, or access control tiers.

Semantic product search. A product search system where queries like “cozy winter jacket for hiking” retrieve relevant products based on meaning rather than keyword matching. Filtered search on category, price range, and in-stock status runs in the same query without a separate database call.

Recommendation engine. A system that embeds user behaviour or item attributes and finds nearest neighbours to surface similar content or products. Qdrant’s multi-vector support lets you store both a text embedding and an image embedding per item and search across both simultaneously.

Long-term agent memory. A component in an agentic AI system that stores past interactions or facts as embeddings, allowing an agent to retrieve relevant context from thousands of prior events without fitting them all in a context window.

Is Qdrant free?

Qdrant is open-source under the Apache 2.0 licence and free to self-host without any licensing cost. You run it in Docker or Kubernetes on your own infrastructure — the only cost is the hardware.

Qdrant Cloud is the managed option. It has a permanent free tier with 0.5 vCPU, 1 GB RAM, and 4 GB disk, which is enough to prototype with a few million vectors. Paid tiers are resource-based at around $0.078/GB-hour of RAM, plus separate charges for vCPU and disk. A small production deployment (2 GB RAM, 1 vCPU) runs roughly $55–70/month on Qdrant Cloud. Hybrid Cloud and Private Cloud options are also available for teams that need data residency or want to run managed Qdrant inside their own cloud account.

How to get started with Qdrant

Run Qdrant locally with Docker:

docker run -p 6333:6333 qdrant/qdrant

This starts the Qdrant server with the REST API at http://localhost:6333 and the gRPC interface at port 6334. Install the Python client and create your first collection:

from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams

client = QdrantClient("localhost", port=6333)

client.create_collection(
    collection_name="my_docs",
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE),
)

From there, embed your documents using an embedding model (OpenAI’s text-embedding-3-small, Cohere, or a local model via Ollama), upsert the vectors with their payload metadata, and run similarity search with optional filters. The Qdrant documentation at qdrant.tech covers Python, TypeScript, and Rust quickstarts in detail.


BuildrLabs is an AI engineering academy in Colombo, Sri Lanka. The Agentic AI Bootcamp covers vector databases and RAG architecture — including hands-on Qdrant work — as part of the production AI systems curriculum. Learn more at buildrlabs.ai.

Key Features

  • HNSW index with filtered search using payload predicates — no two-step post-filtering
  • Binary, scalar, and product quantisation for up to 40x memory reduction
  • Distributed mode with sharding and replication for large-scale deployments
  • Clients in Python, JavaScript/TypeScript, Rust, Go, and Java
  • Hybrid Cloud and Private Cloud options alongside managed Qdrant Cloud
  • REST and gRPC APIs with rich metadata stored as JSON payloads alongside vectors

FAQ

Is Qdrant free? +

Yes. Qdrant is open-source under the Apache 2.0 licence and completely free to self-host. Qdrant Cloud adds a managed option with a free tier (0.5 vCPU, 1 GB RAM, 4 GB disk — enough to test and prototype with millions of vectors) and resource-based paid tiers from around $0.078/GB-hour of RAM.

How does Qdrant compare to Pinecone? +

Qdrant is self-hostable and open-source; Pinecone is managed-only. At equivalent data volumes, Qdrant Cloud tends to be cheaper — benchmarks suggest $120-180/month for 10M vectors on Qdrant versus $170-370/month on Pinecone Serverless. Qdrant also has a stronger filtered search model: filtering on payload attributes happens inside the HNSW index traversal rather than as a post-processing step, which keeps latency predictable at high query rates. Pinecone's advantage is a simpler setup with less infrastructure to think about.

What is quantisation in Qdrant and why does it matter? +

Quantisation compresses the floating-point vectors stored in the index into a smaller numerical format. Scalar quantisation (int8) reduces memory usage by 4x with less than 1% accuracy loss. Binary quantisation goes further — compressing each dimension to a single bit — and can reduce memory usage by 32-40x while boosting search speed, at the cost of some accuracy. For production deployments with tens of millions of vectors, quantisation is often the difference between a deployment that fits in budget and one that does not.

Explore Similar AI Tools

Newsletter

The Twice-Monthly AI Briefing

Updates from the AI world — what shipped, what we’re using in production, and what’s worth your attention. Two emails a month, no spam.