Skip to main content

Qdrant

1. Overview

The Qdrant component (qdrant) connects the flow to a Qdrant vector database, used to store and search embeddings (numeric vectors generated from text, images, etc.). It's the piece that stores and queries vectors generated, for example, by the Embedding component.

Use it when the flow needs to write vectors for semantic search (RAG, recommendation, similarity) or query already stored vectors. Works only as an output action.

2. Prerequisites

  • An accessible Qdrant server (host and gRPC port).
  • An already created collection (or the flow itself can create it with the CREATE_COLLECTION operation).

3. Authentication and Connection

FieldRequiredTypeDescriptionExample
hostYesTextQdrant server address."qdrant.example.com"
portYesNumberQdrant server gRPC port.6334
apiKeyNoTextQdrant API key, if required by the server.An API key
useTlsNoText ("true"/"false")Enables an encrypted connection. Default value: "false"."true"

4. Configuration / Supported Operations

FieldRequiredTypeDescriptionExample
operationYesTextOne of: CREATE_COLLECTION, DELETE_COLLECTION, LIST_COLLECTIONS, GET_COLLECTION, UPSERT, UPDATE_PAYLOAD, DELETE_POINTS, SEARCH, SCROLL, QUERY, GET_POINT."UPSERT"
collectionNameYes, except in LIST_COLLECTIONSTextCollection name in Qdrant."documents"

CREATE_COLLECTION

FieldRequiredTypeDescription
vectorSizeYes, if vectorsConfig isn't usedNumberDimension of the vectors stored in the collection.
distanceNoTextDistance metric. Default value: "Cosine".
vectorsConfigNoText (JSON)Advanced configuration for multiple named vectors in the same collection.

UPSERT — write/update a point (vector + data)

FieldRequiredTypeDescription
pointIdYesText (UUID)Unique point identifier.
denseVectorOne of the threeText (JSON, number list)The point's numeric vector.
sparseVectorOne of the threeText (JSON)Sparse vector (indices + values).
namedVectorsOne of the threeText (JSON)Map of multiple named vectors.
payloadNoText (JSON)Additional data associated with the point (e.g., the original text, metadata).

SEARCH — find points similar to a vector

FieldRequiredTypeDescription
vectorYes, if searchRequest isn't usedText (JSON, number list)Reference vector for the search.
limitNoNumberMaximum number of results. Default value: 10.
filterNoText (JSON)Additional filter on the points' metadata.

Other operations

  • DELETE_COLLECTION, GET_COLLECTION: only collectionName.
  • UPDATE_PAYLOAD: pointId (required), payload (required).
  • DELETE_POINTS, GET_POINT: pointId (required).
  • SCROLL: limit (optional), filter (optional), offset (optional).
  • QUERY: queryRequest (required, JSON with advanced query rules).

5. Practical Examples

Simple example: write a document's embedding into the collection, along with the original text.

Input (embedding generated by a previous step, with the Embedding component):

{
"documentId": "doc-123",
"embedding": [0.012, -0.045, 0.078],
"originalText": "Installation manual for product X"
}

Component configuration:

{
"componentName": "qdrant",
"configurations": {
"host": "qdrant.example.com",
"port": "6334",
"apiKey": "{$.secrets.qdrantApiKey}",
"operation": "UPSERT",
"collectionName": "documents",
"pointId": "{$.body.documentId}",
"denseVector": "{$.body.embedding}",
"payload": "{\"text\": \"{$.body.originalText}\"}"
}
}

Response:

{
"status": "completed",
"pointId": "doc-123"
}

Advanced example: find the 5 documents most similar to a query vector.

Component configuration:

{
"componentName": "qdrant",
"configurations": {
"host": "qdrant.example.com",
"port": "6334",
"apiKey": "{$.secrets.qdrantApiKey}",
"operation": "SEARCH",
"collectionName": "documents",
"vector": "{$.body.queryEmbedding}",
"limit": "5"
}
}

Response:

{
"results": [
{ "id": "doc-123", "score": 0.94, "payload": { "text": "Installation manual for product X" } },
{ "id": "doc-456", "score": 0.87, "payload": { "text": "Quick guide for product X" } }
],
"count": 2
}

6. Common Errors and Troubleshooting

Error / SymptomLikely CauseHow to Fix
"host is required" / "port is required" / "operation is required"Basic connection or operation fields weren't filled in.Fill in host, port, and operation.
"collectionName is required for [operation]"The collectionName field wasn't filled in for an operation that requires it.Fill in collectionName with the collection's name.
"vectorSize or vectorsConfig is required for CREATE_COLLECTION"Neither vector-configuration field was provided when creating the collection.Provide vectorSize (simple usage) or vectorsConfig (multiple vectors).
"At least one vector is required: 'denseVector', 'sparseVector', or 'namedVectors'"The UPSERT operation was used without any vector.Fill in at least one of the three vector fields.
"vector or searchRequest is required for SEARCH"The SEARCH operation was used without a reference vector.Fill in vector (simple usage) or searchRequest (advanced search).
"Point not found: [id]"The queried point doesn't exist in the collection.Confirm pointId is correct and that the point has already been written.
"Failed to parse ... JSON: ..."Some JSON field (vector, filter, payload) is malformed.Review the JSON syntax of the field indicated in the error.