High-performance open-source vector database for next-generation AI applications
An open-source vector database that stores embeddings and finds the nearest ones to a query vector in milliseconds.
Teams reach for it to power semantic search, recommendations, and retrieval for AI apps with fast filtered nearest-neighbor lookups.
| Category | Vector |
| Pronunciation | Pronounced "quadrant" (the "d" is silent). Written in lowercase in most of the project docs. |
| First released | 2021 |
| Latest release | 1.18.3 (Jul 2026) |
| License | Apache-2.0 |
| Written in | Rust |
| Runs on | Linux, Macos, Windows |
| Deployment | Self-hosted, Managed |
| Wire protocol | grpc, http |
| Query dialect | qdrant-api |
| Consistency | eventual |
| ACID support | no |
| JSON support | native |
| Full-text search | native |
| Vector support | native |
| HA model | raft |
| Managed by | qdrant-cloud |
Qdrant is an open-source vector database. It stores high-dimensional vectors, the numeric embeddings that models produce from text, images, or audio, and finds the ones closest to a query vector. Each vector is stored as a point with an id and an optional payload of JSON metadata, so a single search can rank by similarity and filter on fields like price, language, or timestamp at the same time.
The project started in 2021, written in Rust by a team that later formed Qdrant Solutions GmbH in Berlin. The choice of Rust is the reason it holds low latency and predictable memory use under load. The core engine is licensed under Apache 2.0, and the same code runs whether you self-host a container or use the company's managed Qdrant Cloud, so there is no separate open-core engine to switch to later.
Adoption tracked the rise of retrieval-augmented generation, where a model needs to pull relevant context before it answers. Dailymotion uses Qdrant for video recommendation, Disney Streaming for content personalization, and companies like Kaufland, Bayer, Cognizant, and Deloitte run it in production. It is one of the most used dedicated vector databases by GitHub stars and community size.
Qdrant runs as a server that speaks both a REST API over HTTP and a gRPC API, listening on ports 6333 and 6334 by default. Official clients exist for Python, JavaScript, Rust, Go, Java, and .NET, and the same requests work from plain HTTP. You create a collection, upload points in batches, then send a query vector and get back the closest points with their scores and payloads.
Search uses HNSW, a graph index that connects each vector to a set of near neighbors across several layers. A query walks the graph from the top layer down, hopping toward closer vectors at each step, which finds approximate nearest neighbors without scanning the whole collection. Payload filters are applied during this walk, so a filtered query stays fast instead of retrieving a large set and discarding most of it.
Vectors and payloads persist through a write-ahead log and memory-mapped storage, and quantization can compress vectors to cut memory use with a small accuracy tradeoff. A collection splits into shards, and shards replicate across nodes for availability. A cluster coordinates through the Raft protocol, and consistency is eventual, so a read right after a write may hit a replica that has not caught up yet.
A collection is a named set of points, and a point is the unit you store and search. Each point holds a vector, an id that is an unsigned integer or a UUID, and an optional payload of JSON fields. Every vector in a collection shares one dimensionality and one distance metric, both fixed when the collection is created.
A vector is the list of numbers a model outputs for a piece of content, and similarity is how close two vectors sit in that space. Qdrant scores closeness with a distance metric you choose per collection: Cosine, Dot product, Euclidean, or Manhattan. The metric has to match the one the embedding model was trained to use.
Hierarchical Navigable Small World is the graph index behind fast search. It links each vector to nearby ones across layers, and a query descends from the top layer while hopping toward closer points. This returns approximate nearest neighbors in logarithmic time, so latency stays low even as a collection grows into the millions.
A payload is the JSON metadata attached to a point, holding fields like category, price, language, or a timestamp. You can require, exclude, or range-match those fields in a query, and Qdrant applies the filter during the HNSW walk rather than after it. Indexing a payload field keeps filtered searches fast at scale.
Quantization compresses stored vectors to shrink memory and speed up search, trading a little accuracy for a lot of headroom. Scalar quantization maps each dimension to a single byte, binary quantization goes down to one bit, and product quantization groups dimensions. The original vectors stay on disk to rescore top candidates when needed.
A collection divides into shards so its data and search load spread across nodes, and each shard can be replicated for availability. Cluster members coordinate through the Raft consensus protocol to agree on where shards live. Consistency is eventual by default, though you can raise the consistency level per request when it matters.
Live GitHub adoption, updated daily
A handful of the companies running it in production
Search that ranks by meaning instead of keywords, with metadata filters applied in the same query. Qdrant also combines dense and sparse vectors, so keyword and semantic signals rank together.
RAG pipelines store document chunks as vectors and fetch the most relevant ones to ground a model's answer. Qdrant plugs into LangChain, LlamaIndex, and Haystack as the retrieval layer.
Suggesting items close to what a user viewed, liked, or bought. Qdrant can search by example point ids and steer results toward some vectors and away from others in one request.
Any content a model turns into embeddings becomes searchable by similarity, not tags. Store image or audio vectors with payloads and query them the same way you query text embeddings.
Orders, accounts, and ledgers need joins, constraints, and ACID transactions. Qdrant holds vectors and metadata, not a normalized schema, so pair it with Postgres or MySQL for that data.
There are no multi-point transactions you can commit or roll back as a unit. Workloads that depend on all-or-nothing writes across records belong in a relational database, not a vector store.
Grouping, aggregation, and scans over billions of rows are the job of ClickHouse, BigQuery, or a warehouse. Qdrant ranks by vector similarity and is the wrong tool for GROUP BY reporting.
If you only need exact matches or classic full-text ranking, a search engine or a SQL index is simpler and cheaper. Vector search adds an embedding model and cost you would not need there.
Head-to-head specs against the top 4 alternatives
| Spec | |||||
|---|---|---|---|---|---|
| Identity | |||||
| License | Apache-2.0 | Proprietary | Apache-2.0 | Apache-2.0 | BSD-3-Clause |
| First released | 2021 | 2021 | 2022 | 2019 | 2019 |
| Wire protocol | grpc, http | http, grpc | http | grpc, http | http, grpc |
| Query dialect | qdrant-api | milvus-query | graphql | ||
| Capabilities | |||||
| ANN algo | hnsw | proprietary | hnsw | hnsw, ivf, diskann, scann | HNSW |
| Hybrid search | Native | Native | Native | Native | Native |
| Vector | Native | Native | Native | Native | Native |
| Full-text | Native | Native | Native | Native | Native |
| Geospatial | Native | No | No | No | Native |
| Consistency | Eventual | Eventual | Strong | Tunable | Eventual |
| HA model | Raft | None | None | Raft | Raft |
| Ecosystem | |||||
| Managed providers | 1 | 1 | 1 | 1 | 1 |
| Integrations | 11 | 4 | 4 | 7 | 4 |
| Use cases | |||||
| Best for | Semantic search, RAG pipelines, recommendation engines, image similarity, and AI agent memory with advanced filtering | Production-scale vector search with zero infrastructure management and enterprise security requirements | AI/LLM applications, RAG pipelines, semantic search, and rapid prototyping of embedding-based apps | Large-scale vector similarity search, RAG applications, and AI-powered recommendations | Semantic search, RAG pipelines, and AI-native applications requiring hybrid vector and keyword search |
| Not ideal for | Traditional relational queries, OLTP workloads, time-series data, or use cases not involving vector embeddings | Self-hosted deployments, on-premise requirements, cost-sensitive prototyping, or workloads needing open-source flexibility | General-purpose data storage, OLTP, analytics, or production workloads requiring high availability | Traditional relational data, OLTP workloads, or applications not using embeddings | Traditional relational workloads, complex transactions, or use cases requiring strong ACID guarantees |
Run Qdrant locally with Docker, connect over HTTP, and create your first collection and search. Under a minute if you have Docker.
docker run --name qdrant -p 6333:6333 -p 6334:6334 -d qdrant/qdrantcurl http://localhost:6333/healthz
# The web dashboard is at http://localhost:6333/dashboardcurl -X PUT http://localhost:6333/collections/demo \
-H "Content-Type: application/json" \
-d '{ "vectors": { "size": 4, "distance": "Cosine" } }'from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct
client = QdrantClient(url="http://localhost:6333")
client.upsert(
collection_name="demo",
points=[PointStruct(id=1, vector=[0.1, 0.2, 0.3, 0.4], payload={"tag": "a"})],
)
hits = client.query_points(collection_name="demo", query=[0.1, 0.2, 0.3, 0.4]).points
print(hits)That is a working instance. Point any of the official clients at it, or use a GUI when you want to browse collections and run searches visually.
High-performance cloud-native vector database built for scalable similarity search and AI applications
AI-native vector database with hybrid search and built-in model integration
Open-source AI-native vector database for building LLM-powered applications with embeddings
The world's most advanced open-source relational database
The most popular document database for modern applications
Fast in-process analytical database with rich SQL support and zero dependencies
Connect to Qdrant in 30 seconds. Browse tables, run queries, and edit rows visually, on localhost, self-hosted, or cloud.
Open Qdrant in 1bench