Questions
3 of 12
1A client gets a dimension-mismatch error when inserting a point. What are the most common root causes?
2A filter query that should return results returns an empty list. What would you check first?
3Why might a collection created without specifying a distance metric or vector size fail immediately, and what does that tell you about how Qdrant treats collection configuration?
4What causes a 'collection not found' error immediately after a collection was reportedly created successfully in a distributed cluster?
5Search results seem semantically wrong even though the embedding model is known to work well. What layers would you check to isolate the problem?
6Recall dropped noticeably after enabling quantization. How would you determine whether the quantization configuration or the rescoring settings are the cause?
7A previously fast query has become slow after months of continuous upserts and deletes, with no configuration changes. What's the most likely explanation?
8How would you distinguish a latency problem caused by disk I/O from one caused by CPU-bound distance computation?
9One node in a three-node Qdrant cluster crashes. What happens to reads and writes for shards that had a replica on that node?
10After a crashed node recovers and rejoins the cluster, how does it catch up on writes it missed?
11What symptoms would indicate a 'split-brain' style problem in a distributed Qdrant cluster, and how does the Raft-based consensus layer prevent it?
12What's your recovery plan if an entire Qdrant cluster is lost (e.g., all nodes' disks fail) and you only have periodic snapshots?
03 / 12

Why might a collection created without specifying a distance metric or vector size fail immediately, and what does that tell you about how Qdrant treats collection configuration?

Vector size and distance are required, immutable-per-vector settings

Qdrant requires the vector size and the distance metric at collection creation time, and they are immutable for the lifetime of that vector. If you omit either, the create call fails immediately with a validation error. This is not an oversight - it reflects a fundamental property of a vector index. The size determines the length of every vector that will be stored, which in turn determines the size of the HNSW graph nodes, the payload storage layout, and the memory footprint of the collection. The distance metric determines how similarity is computed during graph construction and query, and it affects how the index is built (cosine normalizes vectors, dot product does not, Euclidean uses a different ordering). You cannot change either without rebuilding the collection because the stored data and the graph structure encode those choices. Qdrant treats these as schema-level decisions, not optional defaults, and it fails fast rather than guessing.

The mechanism is that a vector index is a data structure specialized for a particular dimension and metric. An HNSW graph built for cosine similarity is not valid for Euclidean distance because the neighbor relationships differ - two points that are nearest under cosine may not be nearest under Euclidean. Similarly, a graph built for 768-dimensional vectors cannot store 1536-dimensional vectors because the node layout would be wrong and the distance computations would be undefined. Qdrant enforces these at the schema level so that the index is always valid and every query has well-defined semantics. This is why the answer to 'why does it fail' is instructive: it tells you that the collection config is a contract between the client and the database, and the client must know and honor that contract. It also explains why a model upgrade requires a new collection and a re-index rather than a config change - you cannot mutate the contract after data has been written against it.

  1. 1

    Vector size: required, determines node layout and distance computation shape, immutable per vector.

  2. 2

    Distance metric: required, determines neighbor relationships and query semantics, immutable per vector.

  3. 3

    Failure mode: immediate validation error at create time, not a silent default and not a runtime failure.

  4. 4

    Per-vector: in a multi-vector collection, each named vector has its own size and metric.

  5. 5

    Model changes: require a new collection and re-embedding, not a config update.

  6. 6

    Distance metric choice: cosine for normalized embeddings, dot for models trained with dot-product loss, Euclidean for coordinate-like data.

  7. 7

    Multi-vector and sparse vectors: each have their own requirements and, in some cases, constraints on the distance metric.

The trade-off is flexibility against correctness. Requiring the size and metric up front is less flexible than auto-detecting them, but it guarantees that the index is always semantically valid and that queries have predictable behavior. If Qdrant guessed the size, a misconfigured client could silently corrupt the collection. If it defaulted the metric, an application that needed cosine could end up with Euclidean and produce results that look plausible but are wrong. The common mistake is to treat the distance metric as a minor detail and pick cosine by default for everything. That is often correct, but not always: models trained with dot-product loss expect dot product, and using cosine changes the ranking because it normalizes vectors. The second mistake is to assume you can change the metric later. You cannot - it is a rebuild. The third mistake is to create a collection with one vector size, then upgrade the embedding model and try to upsert the new vectors without noticing the mismatch, which produces a dimension error. Version note: the exact set of required parameters and the supported distance metrics have evolved. Binary quantization imposes additional constraints on the metric, and some multi-vector configurations have restrictions on the comparator. Verify the exact schema for your version before designing a collection.

javascript

Version-dependent: the required parameters have been size and distance since early Qdrant versions, but the supported distance metrics and the constraints on them have evolved. Binary quantization, for example, is designed for cosine or dot product with normalized vectors, and using it with Euclidean can be problematic. Multi-vector fields have their own comparator configuration and, in some versions, restrictions on which distance metrics are allowed. Read the schema requirements for your version rather than assuming the same options are available everywhere.

Difficulty: 2/10
Topics: Collection Configuration, Distance Metrics, Schema Design

Scenario Questions

0-2 years experience
  1. 1

    You create a collection with no vectors_config and get an error. Explain what the error means and how to fix it.

  2. 2

    A teammate says you can change the distance metric later if you pick the wrong one. Explain why that is not possible.

2-5 years experience
  1. 1

    You built a collection with cosine distance but your model was trained with dot-product loss. Explain the impact on search quality and how you would migrate.

  2. 2

    You need to create a multi-vector collection with different sizes for title and body. Explain how to configure it and what constraints apply.

5-8 years experience
  1. 1

    Design a schema validation layer in your application that catches size and metric mismatches before they reach Qdrant, and describe how you would keep the schema in sync with the code.

  2. 2

    You are migrating a collection from cosine to dot product to improve recall. Describe the migration, the validation, and the rollback plan.

8+ years experience
  1. 1

    You are designing a multi-tenant system where each tenant may use a different embedding model and distance metric. Describe the schema and the routing, and how you would prevent configuration errors.

  2. 2

    A product decision requires supporting multiple embedding models per tenant with different dimensions. Describe the architecture, including the storage layout, the query routing, and the configuration validation.

Follow-up Questions

  • What is the difference between cosine and dot product for normalized vectors, and why does the choice matter for search quality?
  • How would you validate that a distance metric change would improve retrieval quality before committing to a rebuild?