Prev Next

Database / Qdrant Vector DB Interview questions

1. What is Qdrant? 2. What is the purpose of Qdrant? 3. What are the key features of Qdrant? 4. What is a collection in Qdrant? 5. What is a point in Qdrant? 6. What is a payload in Qdrant? 7. What is the HNSW algorithm? 8. What distance metrics does Qdrant support? 9. How do you create a collection in Qdrant? 10. How do you insert/upsert points into a collection? 11. What is the difference between REST and gRPC APIs in Qdrant? 12. What client libraries are available for Qdrant? 13. What is payload filtering in Qdrant? 14. Define scalar quantization in Qdrant? 15. What is a segment in Qdrant? 16. How do you perform a similarity search in Qdrant? 17. What is the purpose of a payload index? 18. List the supported field types for payload indexing? 19. What is Qdrant Cloud? 20. What is memmap storage in Qdrant? 21. What is the difference between Qdrant and Pinecone? 22. What is the difference between Qdrant and Weaviate? 23. Why is Qdrant implemented in Rust? 24. How does the HNSW graph work internally in Qdrant? 25. What is the difference between scalar, binary, and product quantization? 26. Explain the internal working of binary quantization and why it's fast? 27. What is oversampling and rescoring in quantized search? 28. How does Qdrant implement filtering during HNSW traversal? 29. Explain the internal working of Qdrant's sharding and replication? 30. What consensus protocol does Qdrant use for distributed clusters, and how does it work? 31. What are named vectors, and when should you use them? 32. What are sparse vectors in Qdrant? 33. Explain hybrid search using the Query API and Prefetch? 34. What is Reciprocal Rank Fusion (RRF) versus Distribution-Based Score Fusion (DBSF)? 35. How do you implement multitenancy in Qdrant? 36. Explain the lifecycle of a write operation in Qdrant (WAL, segments, optimizers)? 37. What is the role of the Write-Ahead Log (WAL) in Qdrant? 38. How do you take and restore snapshots in Qdrant? 39. What is the difference between keeping vectors on-disk versus the HNSW index in RAM? 40. Explain the execution flow of a filtered vector search query in Qdrant? 41. When should you choose binary quantization versus scalar quantization? 42. How do you optimize Qdrant for high-throughput production workloads? 43. What is the ACORN-1 method, and why does it matter for filtered search? 44. Explain the internal working of Qdrant's segment optimizer/merging? 45. How do you implement multi-vector (late interaction / ColBERT-style) search in Qdrant? 46. What is the role of the payload index in query planning? 47. How does Qdrant handle consistency during a node failure? 48. Explain the execution flow of a RAG pipeline built with Qdrant as the retrieval layer? 49. What are the trade-offs of self-hosting Qdrant versus using Qdrant Cloud? 50. What is Qdrant's Discovery/Recommendation API used for?

1. What is Qdrant?

Qdrant (pronounced "quadrant") is an open-source vector database and similarity search engine written in Rust, purpose-built for storing high-dimensional vector embeddings and running fast approximate nearest neighbor search over them, alongside rich metadata filtering. It ships as a single, stat...

Read full answer

2. What is the purpose of Qdrant?

Qdrant exists to make similarity search over large collections of vector embeddings both fast and practical in production, specifically by treating metadata filtering as a first-class part of the search itself rather than a separate step applied before or after. Many applications generating embed...

Read full answer

3. What are the key features of Qdrant?

Qdrant combines a set of capabilities focused specifically on production-grade vector search, several of which distinguish it from simpler embedded or prototype-focused vector stores. Feature What it Provides HNSW indexing Fast approximate nearest neighbor search over high-dimensional vectors Pay...

Read full answer

4. What is a collection in Qdrant?

A collection is the top-level container for a set of points (vectors plus their payloads) in Qdrant, roughly analogous to a table in a relational database, and it defines shared configuration like vector dimensionality, distance metric, and indexing/quantization settings that apply to every point...

Read full answer

5. What is a point in Qdrant?

A point is the basic unit of data stored in a Qdrant collection — a unique ID, one or more vectors, and an optional payload (a JSON object holding arbitrary structured metadata), roughly comparable to a row in a relational database. client.upsert( collection_name="documents", points=[ model...

Read full answer

6. What is a payload in Qdrant?

A payload is the structured, JSON-formatted metadata attached to a point — separate from its vector — used to store descriptive information like text, tags, categories, numeric values, or nested objects that a query can filter on alongside vector similarity. payload = { "title" : "Get...

Read full answer

7. What is the HNSW algorithm?

HNSW (Hierarchical Navigable Small World) is a graph-based approximate nearest neighbor algorithm that Qdrant uses as its default vector index, organizing vectors into a multi-layer graph structure that lets a search converge on nearby vectors in roughly logarithmic time rather than scanning the ...

Read full answer

8. What distance metrics does Qdrant support?

Qdrant supports several standard distance/similarity metrics for comparing vectors, chosen when a collection is created, and the right choice generally depends on how the embedding model that produced the vectors was trained and normalized. Metric Typical Use Cosine Measures angle between vectors...

Read full answer

9. How do you create a collection in Qdrant?

Creating a collection means calling create_collection with a name and a vector configuration specifying at minimum the vector size (dimensionality) and the distance metric to use for similarity comparisons. from qdrant_client import QdrantClient, models client = QdrantClient(url = "http://localho...

Read full answer

10. How do you insert/upsert points into a collection?

Points are added or updated in Qdrant using the upsert operation, which either inserts a new point if its ID doesn't already exist, or overwrites the existing point's vector and payload if it does — the same call handles both cases. client.upsert( collection_name="documents", points=[ model...

Read full answer

11. What is the difference between REST and gRPC APIs in Qdrant?

Qdrant exposes the same core functionality through two API protocols simultaneously, and most official client libraries let you choose which one to use under the hood, trading off ease of debugging against raw performance. REST API gRPC API HTTP/JSON, human-readable, easy to debug with curl or a ...

Read full answer

12. What client libraries are available for Qdrant?

Qdrant provides official client libraries in several languages, all built to talk to the same underlying REST and gRPC APIs, so the choice of language doesn't limit which Qdrant features are accessible. Language Notes Python The most widely used client, with helpers like local in-memory mode for ...

Read full answer

13. What is payload filtering in Qdrant?

Payload filtering lets a query narrow results to points whose payload matches specified conditions, combined directly with vector similarity search rather than as a separate post-processing step, so a query can express something like "find similar vectors, but only where category equals 'news' an...

Read full answer

14. Define scalar quantization in Qdrant?

Scalar quantization is a vector compression technique that converts each 32-bit floating-point component of a vector into an 8-bit integer, achieving roughly 4x memory reduction with typically minimal accuracy loss, at the cost of some precision in similarity scoring. client.update_collection( co...

Read full answer

15. What is a segment in Qdrant?

A segment is a self-contained internal unit within a Qdrant collection, each owning its own vector storage, payload storage, HNSW index, and ID mapping — a collection is composed of one or more segments working together rather than being one single monolithic storage structure. Splitting a ...

Read full answer

16. How do you perform a similarity search in Qdrant?

A similarity search means calling the Query API with a query vector, which Qdrant compares against stored vectors using the collection's configured distance metric and returns the closest matches, optionally filtered and limited to a specific count. results = client . query_points( collection_nam...

Read full answer

17. What is the purpose of a payload index?

A payload index is a dedicated index built on a specific payload field, letting Qdrant quickly find points matching a filter condition on that field without scanning every point's payload for every query — the payload equivalent of the HNSW index's role for vector similarity. client.create_...

Read full answer

18. List the supported field types for payload indexing?

Qdrant supports several payload index types, each optimized for a particular kind of data and the filter conditions typically used against it. Index Type Used For keyword Exact-match string filtering, e.g. category or status integer / float Numeric range and exact-value filtering bool Boolean tru...

Read full answer

19. What is Qdrant Cloud?

Qdrant Cloud is a fully managed hosting offering for Qdrant, handling infrastructure provisioning, scaling, upgrades, and monitoring on the customer's behalf, as an alternative to self-hosting the open-source Qdrant binary directly. It runs the same underlying Qdrant engine as the self-hosted, op...

Read full answer

20. What is memmap storage in Qdrant?

Memmap (memory-mapped) storage is a mode where Qdrant stores vector data in files on disk but accesses them through the operating system's memory-mapping mechanism, letting the OS transparently page data in and out of RAM as needed rather than requiring the entire dataset to be loaded into memory...

Read full answer

21. What is the difference between Qdrant and Pinecone?

Both are widely used for vector similarity search, but they differ in openness and deployment model: Qdrant is open-source and can be self-hosted or run as a managed cloud service, while Pinecone is a closed-source, cloud-only managed service. Qdrant Pinecone Open-source; self-host or use Qdrant ...

Read full answer

22. What is the difference between Qdrant and Weaviate?

Both are open-source vector databases with self-hosted and managed cloud options, but they differ in core data modeling philosophy and some architectural emphases. Qdrant Weaviate Rust core; collections of points with flexible JSON payloads. Go core; schema-driven classes with defined properties....

Read full answer

23. Why is Qdrant implemented in Rust?

Rust was chosen specifically because it provides memory safety guarantees at compile time without needing a garbage collector, which matters a great deal for a system where predictable, low-latency performance under heavy concurrent load is a core requirement. Garbage-collected languages periodic...

Read full answer

24. How does the HNSW graph work internally in Qdrant?

Qdrant's HNSW implementation builds and searches a layered graph where each node is a vector, and edges connect a vector to a set of its approximate nearest neighbors — the specific structure and traversal algorithm are what let search converge quickly without ever comparing the query again...

Read full answer

25. What is the difference between scalar, binary, and product quantization?

All three techniques compress vectors to save memory and speed up distance computation, but they differ substantially in how aggressively they compress and what trade-off in accuracy that compression costs. Scalar Binary Product float32 to int8 per dimension. Each dimension to ~1-2 bits. Sub-vect...

Read full answer

26. Explain the internal working of binary quantization and why it's fast?

Binary quantization compresses each dimension of a vector down to just one or two bits, typically by checking whether that dimension's value falls above or below a threshold (often zero, for centered embeddings), turning a vector of floats into a compact bit string. flowchart TD A[Original float3...

Read full answer

27. What is oversampling and rescoring in quantized search?

Oversampling and rescoring is a two-stage retrieval pattern that recovers most of the accuracy lost to quantization: first retrieve more candidates than actually needed using the fast, compressed representation, then re-rank just that smaller candidate set using the original, full-precision vecto...

Read full answer

28. How does Qdrant implement filtering during HNSW traversal?

Rather than running a full vector search first and filtering the results afterward (which risks returning too few results if the filter is highly selective), Qdrant integrates payload filtering directly into the HNSW graph traversal itself, checking each candidate node's filter eligibility as the...

Read full answer

29. Explain the internal working of Qdrant's sharding and replication?

Sharding splits a collection's data horizontally across multiple nodes so no single machine needs to hold the entire dataset, while replication keeps multiple copies of each shard on different nodes for fault tolerance — the two mechanisms work together to give a distributed Qdrant cluster ...

Read full answer

30. What consensus protocol does Qdrant use for distributed clusters, and how does it work?

Qdrant uses the Raft consensus algorithm to keep cluster-wide metadata — things like collection configuration, shard placement, and cluster membership — consistent across all nodes in a distributed deployment, even as nodes join, leave, or fail. sequenceDiagram participant Leader part...

Read full answer

31. What are named vectors, and when should you use them?

Named vectors let a single point in a collection carry multiple distinct vector representations, each identified by a name, rather than being limited to exactly one vector per point — useful whenever an item genuinely has more than one meaningful embedding. clie nt .crea te _collec t io n (...

Read full answer

32. What are sparse vectors in Qdrant?

Sparse vectors represent data using mostly-zero, high-dimensional vectors where only a small subset of dimensions have non-zero values — the format typically produced by keyword-based or learned lexical models like BM25 or SPLADE — stored efficiently as just the non-zero indices and t...

Read full answer

33. Explain hybrid search using the Query API and Prefetch?

Qdrant's Query API supports hybrid search through prefetch stages: multiple independent sub-queries (for example, one dense vector search and one sparse vector search) run first, and their results are then combined by an outer fusion query into one final ranked list. results = client.query_points...

Read full answer

34. What is Reciprocal Rank Fusion (RRF) versus Distribution-Based Score Fusion (DBSF)?

Both are fusion methods for combining multiple ranked result lists into one, but they take different approaches to the core challenge that dense and sparse search scores aren't directly comparable — RRF sidesteps the problem by ignoring raw scores, while DBSF tackles it head-on by normalizi...

Read full answer

35. How do you implement multitenancy in Qdrant?

Qdrant's recommended multitenancy pattern is partitioning tenants within a single shared collection using a payload field (like tenant_id ), rather than creating a separate collection per tenant, which avoids the operational overhead of managing potentially thousands of small collections. client....

Read full answer

36. Explain the lifecycle of a write operation in Qdrant (WAL, segments, optimizers)?

A write in Qdrant moves through several stages before it's fully reflected in a queryable, optimized index — first ensuring durability, then applying the change to in-memory/segment structures, then eventually being folded into the collection's ongoing background optimization process. flowc...

Read full answer

37. What is the role of the Write-Ahead Log (WAL) in Qdrant?

The WAL is an append-only log that records every write operation before it's considered durable, serving as the recovery mechanism that lets Qdrant reconstruct any recent changes that might not have been fully persisted to segment storage if the process crashes or restarts unexpectedly. Because a...

Read full answer

38. How do you take and restore snapshots in Qdrant?

A snapshot is a point-in-time backup of a collection (or the entire node), which Qdrant can create on demand and later use to restore that collection's exact state — useful for backups, migrating data between clusters, or cloning a collection for testing. # Create a snapshot of a collection...

Read full answer

39. What is the difference between keeping vectors on-disk versus the HNSW index in RAM?

Qdrant allows independently configuring whether raw vector data lives on disk or in memory, separately from whether the HNSW index structure itself is kept in RAM, which gives fine-grained control over the memory/performance trade-off beyond the basic in-memory-versus-memmap choice. client.update...

Read full answer

40. Explain the execution flow of a filtered vector search query in Qdrant?

A filtered vector search combines HNSW graph traversal with payload condition checking in a single, integrated pass, rather than running two entirely separate operations and merging their results afterward. flowchart TD A[Query: vector + filter] --> B[Query planner inspects filter selectivity and...

Read full answer

41. When should you choose binary quantization versus scalar quantization?

The choice comes down to how much you're willing to trade accuracy for speed and memory savings, and how well-suited the specific embedding model is to surviving aggressive compression. Choose Scalar Quantization When Choose Binary Quantization When Accuracy is a top priority, with only moderate ...

Read full answer

42. How do you optimize Qdrant for high-throughput production workloads?

Tuning Qdrant for high throughput generally means addressing several independent levers together — indexing parameters, memory layout, sharding, and client-side batching — since no single setting alone typically accounts for the full performance gap between a default setup and a tuned...

Read full answer

43. What is the ACORN-1 method, and why does it matter for filtered search?

ACORN-1 is a filtered ANN search technique Qdrant adopted (adapted from the broader ACORN approach) specifically to handle the case where a filter is so selective that standard filtered HNSW traversal becomes inefficient — needing to explore a large portion of the graph just to find enough ...

Read full answer

44. Explain the internal working of Qdrant's segment optimizer/merging?

The segment optimizer is a background process that continuously monitors a collection's segments and reorganizes them — merging small segments into larger ones and reclaiming space from deleted points — to keep query performance from degrading as a collection experiences ongoing write...

Read full answer

45. How do you implement multi-vector (late interaction / ColBERT-style) search in Qdrant?

Multi-vector search stores several vectors per point — for instance, one embedding per token in a ColBERT-style late-interaction model, rather than a single pooled embedding for the whole document — and scores a query against all of them together using a specialized comparison, typica...

Read full answer

46. What is the role of the payload index in query planning?

Beyond simply speeding up a lookup on an individual field, payload indexes feed directly into Qdrant's query planner, which uses information about which fields are indexed (and roughly how selective they are) to decide the most efficient overall strategy for executing a filtered vector search. Wh...

Read full answer

47. How does Qdrant handle consistency during a node failure?

Qdrant's fault tolerance during a node failure relies on the combination of shard replication and Raft-based consensus: as long as enough replicas of each shard and enough cluster nodes remain available, the cluster continues operating correctly despite the lost node. For data operations (reads a...

Read full answer

48. Explain the execution flow of a RAG pipeline built with Qdrant as the retrieval layer?

A retrieval-augmented generation pipeline using Qdrant separates cleanly into an ingestion phase, run once or incrementally as new content arrives, and a query-time phase, run for every user request, with Qdrant's collection serving as the shared retrieval index connecting the two. flowchart TD s...

Read full answer

49. What are the trade-offs of self-hosting Qdrant versus using Qdrant Cloud?

Choosing between running Qdrant yourself and using the managed Qdrant Cloud offering trades operational control and cost predictability against convenience and reduced infrastructure burden, similar in spirit to the self-hosted-versus-managed decision common across open-source data infrastructure...

Read full answer

50. What is Qdrant's Discovery/Recommendation API used for?

Beyond a standard single-query similarity search, Qdrant provides a Recommendation API and a Discovery API for scenarios where relevance is better expressed through multiple example points — some to move toward, some to move away from — rather than a single query vector. results = cli...

Read full answer

«
»

Comments & Discussions