Skip to content

Embeddings and reranking

Vector names answer “which vector?” Vector roles answer “what input shape and embedding path?” QQL keeps those decisions separate.

FormRole
USING semanticResolve role from collection schema
USING semantic AS DENSEExplicit dense vector
USING lexical AS SPARSEExplicit sparse vector
USING colbert AS MULTIExplicit dense multivector
QQLOffline-explicit vector roleTry in playground
QUERY TEXT 'late interaction' FROM papers
USING colbert AS MULTI
LIMIT 10;
QQLColBERT-style rerankTry in playground
WITH candidates AS (
QUERY TEXT 'vector compression' USING dense LIMIT 100
)
QUERY RERANK TEXT 'vector compression' MODEL 'colbert-v2'
FROM papers
USING colbert AS MULTI
PREFETCH (candidates)
LIMIT 10;

This embeds the query as a dense multivector and uses Qdrant MaxSim against the stored multivector target.

QQLHost pair scoringTry in playground
WITH candidates AS (
QUERY TEXT 'vector compression' USING dense LIMIT 50
)
QUERY CROSS RERANK TEXT 'vector compression'
MODEL 'bge-reranker-base'
ON FIELD abstract
FROM papers
PREFETCH (candidates)
LIMIT 10;

Cross reranking reads candidate text from the payload, calls the host's pair-scoring capability, and reorders hits client-side. It does not use a Qdrant multivector target.