
Weaviate
CertifiedTasks that manage and query vectors in Weaviate.
Provide Weaviate endpoint and API key to create collections, batch import objects with vectors, run BM25, hybrid, near-text and near-vector searches with filters, and delete objects, enabling vector search inside workflows. Requires Weaviate 1.32 or later.
Weaviate
Tasks that manage and query vectors in Weaviate.
Provide Weaviate endpoint and API key to create collections, batch import objects with vectors, run BM25, hybrid, near-text and near-vector searches with filters, and delete objects, enabling vector search inside workflows. Requires Weaviate 1.32 or later.
tasks
How to use the Weaviate plugin
Search, insert, and manage objects and collections in Weaviate from Kestra flows. The plugin uses the Weaviate Java client v6, which talks to Weaviate over REST and gRPC and requires Weaviate 1.32 or later.
Connection
Set url to your Weaviate URL, e.g. http://localhost: 8080. For authenticated clusters, set apiKey. Store secrets in secrets and set connection properties on each task.
Queries and batch inserts use gRPC, so the gRPC port must be reachable from the Kestra worker:
- Self-hosted Weaviate: gRPC defaults to the host of
urlon port50051. Override it withgrpcHostandgrpcPort. gRPC uses TLS whenurlis https. - Weaviate Cloud: URLs ending in
.weaviate.cloudor.weaviate.networkare detected automatically and connect to the matching gRPC endpoint on port 443.apiKeyis required.
Pass extra headers with headers, for example vectorizer API keys such as X-OpenAI-Api-Key. They are sent on both REST and gRPC calls.
Tasks
SchemaCreate creates a collection. Set className, fields as a map of property name to Weaviate data type (text, int, number, boolean, date, uuid, their [] array forms, blob, geoCoordinates, phoneNumber), and optionally a vectorizer. Set skipIfExists: true to make the task idempotent.
BatchCreate inserts objects in batches of batchSize. Set objects to a kestra:// URI of an ION file or an inline list of maps. Use uuidKey and vectorKey to take object IDs and precomputed vectors from the input. The task fails if Weaviate rejects any object, unless failOnError is false; rejected objects are then listed in the errors output.
Query searches a collection. Choose the search with searchType:
searchType |
Uses |
|---|---|
FETCH_OBJECTS (default) |
lists objects, optionally filtered |
BM25 |
keyword search on query, optionally limited to queryProperties |
HYBRID |
blends keyword and vector search on query; alpha sets the balance, vector is optional |
NEAR_TEXT |
vector search on query, vectorized by the collection's vectorizer |
NEAR_VECTOR |
vector search on vector |
Each result row is {uuid, properties, metadata, vector?, vectors?}. Request metadata such as DISTANCE or SCORE with returnMetadata, and vectors with includeVector. Control result handling with fetchType (default STORE).
Delete removes objects from a collection: set objectId to delete one object, or filters to delete every match. Deleting all objects requires deleteAll: true. The task fails if Weaviate rejects any deletion, unless failOnError is false.
Filters
Query and Delete accept two filter forms, which can be combined (both must match):
filter: a map of property to value, combined with AND. Text values useLIKE, so*wildcards work; other values useEQUAL.filters: a list of{property, operator, value, valueType}conditions, combined withfiltersOperator(ANDorOR). Operators:EQUAL,NOT_EQUAL,GREATER_THAN,GREATER_THAN_EQUAL,LESS_THAN,LESS_THAN_EQUAL,LIKE,CONTAINS_ANY,CONTAINS_ALL,CONTAINS_NONE,IS_NULL. SetvalueType: DATEorUUIDfor dates and UUIDs written as strings. Use_idto filter by object UUID.
Upgrading from the GraphQL-based plugin
Plugin versions built on the Weaviate Java client v6 replace the GraphQL-based Query with the structured search above, and requires Weaviate 1.32 or later. The main changes:
Query.queryis now search text, not a GraphQL string. UsesearchType,limit,returnPropertiesandfiltersinstead of aGet { ... }query.- Query rows changed from
{ClassName: {...}}to{uuid, properties, metadata}:row.ClassName.titlebecomesrow.properties.title, and_additional.idbecomesuuid. BatchCreatenow returnsinsertedCount,failedCountanderrors, and fails on rejected objects by default.Deletewith neitherobjectIdnor filters now requiresdeleteAll: true, and fails on rejected deletions by default (failOnError).SchemaCreatetakes one data type per field; the legacystringtype is created astext. It defaults tovectorizer: NONEinstead of the server's default vectorizer, so setvectorizerif you relied on it.- Aggregations,
groupBy, generative search andExploreare not supported. Stay on a plugin version built on the v5 client, or call the Weaviate REST API withio.kestra.plugin.core.http.Request.