What it does
Qdrant is a vector database written in Rust. It stores embeddings and JSON payloads, with indexing, filtering, and support for dense, sparse, and multivector retrieval.
Why it’s interesting
Combining similarity search with payload constraints is essential for useful results. Its indexing and quantization code illustrates memory, recall, and latency tradeoffs without assuming one configuration fits every dataset.
Real-world use case
Build a documentation RAG service that retrieves relevant passages filtered by product version and tenant. Enforce authorization in your application as well as query filters.
What I can learn
- 01
HNSW indexing
navigate approximate nearest-neighbor graphs.
- 02
Filtered search
combine metadata constraints with vector retrieval.
- 03
Quantization
trade vector precision for reduced memory usage.
One thing to explore
HNSW graph construction and search
Follow the implementation and connect it to the learning points above.
Explore the source (opens in a new tab)10-Minute Challenge
Create a tiny vector collection
Before you start: Docker; the disposable container does not persist data.
- Start a local Qdrant container and open http://localhost:6333/dashboard.
- Create the four-dimensional demo collection below.
- Use the dashboard console to insert two points with four-number vectors and query their nearest neighbors.
docker run --rm -p 127.0.0.1:6333:6333 qdrant/qdrantcurl -X PUT http://localhost:6333/collections/demo \ -H "Content-Type: application/json" \ -d '{"vectors":{"size":4,"distance":"Cosine"}}'