This path uses Qdrant REST on port 6333 and an OpenAI-compatible embedding endpoint. If you already store vectors, omit the embedder and use vector input.
Start Qdrant
Qdrantdocker run --rm -p 6333:6333 -p 6334:6334 qdrant/qdrantConfigure execution
Environmentexport QDRANT_URL=http://localhost:6333 export EMBED_URL=http://localhost:11434/v1/embeddings export EMBED_MODEL=all-minilm:l6-v2 export EMBED_DIM=384Create a collection
CREATE COLLECTION docs (dense VECTOR(384, COSINE)) WITH HNSW (m = 16, ef_construct = 100);CREATE INDEX ON COLLECTION docs FOR category TYPE keyword;Upsert content
UPSERT INTO docs VALUES{id: 1, text: 'QQL provides typed vector retrieval', category: 'qql'},{id: 2, text: 'Qdrant stores dense and sparse vectors', category: 'qdrant'}USING DENSE MODEL 'all-minilm:l6-v2';Search
QUERY TEXT 'typed query language' FROM docsUSING denseWHERE category = 'qql'LIMIT 5;
Save the statements as quickstart.qql, then execute the whole script:
Execute the script
qql execute quickstart.qqlUse qql explain "QUERY ..." to inspect a plan without sending it to Qdrant.