Database / Qdrant Vector DB Interview questions
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.
client.create_collection( collection_name="products", vectors_config={ "image": models.VectorParams(size=512, distance=models.Distance.COSINE), "description": models.VectorParams(size=384, distance=models.Distance.COSINE), }, ) client.upsert( collection_name="products", points=[models.PointStruct( id=1, vector={"image": image_embedding, "description": text_embedding}, payload={"name": "Blue Ceramic Mug"}, )], )
Common scenarios include storing both an image embedding and a text-description embedding for the same product, storing embeddings from two different models for A/B comparison, or storing multiple Matryoshka-style embeddings at different dimensionalities for progressive, coarse-to-fine search — all without needing to split the same logical item across multiple separate collections.
Each named vector has its own independently configured size and distance metric, and a query can search against a specific named vector using the using parameter, which is also what makes named vectors the foundation for combining dense and sparse vectors within the same collection for hybrid search.
More Related questions...