Qdrant Tutorial Repository

Basic Tutorials

Get up and running with Qdrant in minutes.

TutorialObjectiveStackTimeLevel
Qdrant Local QuickstartBasic CRUD operations and local deployment.Any10mBeginner
Qdrant Cloud QuickstartBasic CRUD operations on Qdrant Cloud.Any10mBeginner
Semantic Search 101Build a search engine for science fiction books.Any10mBeginner
Multimodal SearchBuild a pipeline to search across text and images modalitiesPython15mBeginner
Hybrid SearchGet started with hybrid search.Any15mBeginner
Hybrid Search with RerankingRerank hybrid search results for improved accuracy.Any40mIntermediate
FastEmbedGenerate embeddings on CPU, then embed, index, and search with qdrant-client.Python15mBeginner

Search Engineering Tutorials

Master vector search modalities, reranking, and retrieval quality.

TutorialObjectiveStackTimeLevel
Relevance FeedbackRelevance Feedback Retrieval in QdrantPython30mIntermediate
Collaborative FilteringCollaborative filtering using sparse embeddings.Python45mIntermediate
Multivector Document RetrievalPDF RAG using ColPali and embedding pooling.Python30mIntermediate
Measuring ANN RecallMeasure ANN recall with the Web UI and tune HNSW parameters.Web UI15mBeginner
Multivectors and Late InteractionEffective use of multivector representations.Python30mIntermediate
Compressed Multivector SearchStore a ColBERT multivector as turbo4 and query it alongside a sparse vector with the Query API.Python25mIntermediate
Multi-Representation SearchFuse title, summary, chunk, and tag vectors with named vectors and the Query API.Python45mIntermediate
Branch-Aware SearchScope search to a branch’s live view in a versioned corpus, inherited from its ancestors.Python25mIntermediate
Indexing Payloads of Random ShapeIndex open-ended payload keys with one nested key-value array instead of one index per key.Python25mIntermediate
Deterministic Collection SlicingSplit a collection into deterministic subsets for parallel scroll and reproducible sampling.Python20mIntermediate
Sparse Fine-Tuning, Part 1: Why Sparse Embeddings Beat BM25Why sparse embeddings suit e-commerce search, and how SPLADE works.Python10mAdvanced
Sparse Fine-Tuning, Part 2: Training SPLADE on ModalTrain a SPLADE model on Amazon ESCI with Sentence Transformers on Modal GPUs.Python45mAdvanced
Sparse Fine-Tuning, Part 3: Evaluation and Hard NegativesEvaluate fine-tuned SPLADE in Qdrant and add hard negative mining.Python30mAdvanced
Sparse Fine-Tuning, Part 4: Specialization vs GeneralizationTest cross-domain generalization and decide when to fine-tune.Python10mAdvanced
Sparse Fine-Tuning, Part 5: From Research to ProductFine-tune SPLADE for your own catalog with the qdrant-finetune CLI.Python2hAdvanced
Query DecompositionAnswer multi-hop questions by retrieving in steps and fusing the per-hop results.Python OpenAI15mIntermediate
Multimodal Food Search DemoSee how CLIP, grouped queries, and recommendation strategies power a food discovery app.Python20mBeginner

Operations & Scale

Production-grade management, monitoring, and high-volume optimization.

TutorialObjectiveStackTimeLevel
SnapshotsCreate and restore collection snapshots.Python20mBeginner
Embedding Model MigrationUse your new model with zero downtime.Any40mIntermediate
Blue-Green Cluster DeploymentDeploy changes to a new cluster and switch traffic with zero production risk.Any30mIntermediate
Time-Based ShardingEfficiently manage time-series data with user-defined sharding.Any1hIntermediate
Large-Scale SearchCost-efficient search for LAION-400M datasets.Any48hAdvanced
GPU-Accelerated HNSW IndexingSpeed up HNSW index builds and compare cost against CPU.Python45mIntermediate
Secure a Self-Hosted InstanceEnable TLS, API keys, and JWT access control.Any45mIntermediate
Incremental Embedding UpdatesSync embeddings with changing raw text data.Any25mBeginner
Prevent Unoptimized UsageStop bulk uploads from slowing down search without losing data.Python20mIntermediate
Scaling and Monitoring Hybrid CloudResize CPU, memory, and disk, and know what to monitor first.Kubernetes25mIntermediate
Securing and Exposing a Hybrid Cloud ClusterSet up API key authentication, database-level TLS, and TLS-terminating ingress on a self-managed Hybrid Cloud cluster.Kubernetes25mIntermediate
Qdrant Cloud Prometheus MonitoringObservability with Prometheus and Grafana.Prometheus30mIntermediate
Monitoring with Grafana and PrometheusObservability for hybrid/private cloud setups.Prometheus30mIntermediate
Monitoring with DatadogObservability for hybrid/private cloud setups with Datadog.Datadog20mIntermediate
Kafka Streaming into QdrantStream real-time data into Qdrant with the Kafka Sink Connector.Kafka60mAdvanced

Develop & Implement

Core tools and APIs for building with Qdrant.

TutorialObjectiveStackTimeLevel
Build a Semantic Search APIDeploy a search service for company descriptions.FastAPI30mBeginner
Build a Hybrid Search APICombine dense and sparse search.FastAPI20mBeginner
Async APIUse Asynchronous programming for efficiency.Python25mIntermediate
Semantic Search for CodeNavigate codebases using vector similarity.Python45mIntermediate
Serverless Semantic SearchDeploy a Rust search function on AWS Lambda with Cohere and Qdrant.Rust45mIntermediate
Semantic Search As You TypeBuild search-as-you-type with a prefix cache and prioritized batch queries.Python30mIntermediate

Migrate to Qdrant

Move your vectors from other databases and keep them in sync.

TutorialObjectiveStackTimeLevel
Migration Tool OverviewMigrate vectors from any supported source.CLIVariesIntermediate
From PineconeMigrate from Pinecone serverless indexes.CLI15mIntermediate
From WeaviateMigrate from Weaviate (pre-create collection).CLI20mIntermediate
From MilvusMigrate from Milvus/Zilliz with partitions.CLI15mIntermediate
From ElasticsearchMigrate dense vectors from Elasticsearch.CLI15mIntermediate
From pgvectorMigrate from PostgreSQL pgvector tables.CLI15mIntermediate
Migration VerificationVerify data integrity and search quality.Python1h+Intermediate
Keeping Postgres in SyncKeep Postgres and Qdrant in sync.Python30mIntermediate
Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.