Skip to main content

Add Function Field to Collection (V2)

This operation adds a function, its output field, and the field index to an existing collection in one schema change.

POST/v2/vectordb/collections/add_function_field
Connection Endpoint

The base URL for this API is in the following format:

https://${CLUSTER_ENDPOINT}

📘Notes
  • You need to fill in ${CLUSTER_ENDPOINT} with that of your Zilliz Cloud cluster.
  • To get the endpoint, use the Describe Cluster V2 API to extract the values from the responses.
shell
export CLUSTER_ENDPOINT=""
Parameters
Authorizationstringheaderrequired

The authentication token should be an API key with appropriate privileges or a pair of colon-joined username and password, like username:password. If you are using a project endpoint, only a valid API key with sufficient permissions applies.

Example Value: Bearer {{TOKEN}}
Request Body
dbNamestring

The name of the database.

collectionNamestringrequired

The name of the collection.

functionobjectrequired

The function definition to add to the collection.

namestringrequired

The name of the function to create.

descriptionstring

The description of the function to create.

typestringrequired

The type of the function to create.

inputFieldNamesarrayrequired

The names of the input fields for the function to create.

[]inputFieldNamesstring

A field name.

outputFieldNamesarrayrequired

The names of the output fields for the function to create.

[]outputFieldNamesstring

A field name.

paramsobject

Configuration parameters specific to the current function. Once the function type is set to BM25, no parameter is required. For applicable parameters to functions of TEXTEMBEDDING or RERANK, refer to Embedding Functions and Reranking Functions

outputFieldobjectrequired

The output field generated by the function.

fieldNamestringrequired

The name of the field to create in the target collection

dataTypestringrequired

The data type of the field values.

elementDataTypestring

The data type of the elements in an array field. This is required if the current field is of the array type.

nullableboolean

Whether the field can be null. If set to true, the field can contain null values.

defaultValuestring

The default value of the field. This is required if the current field is of the VarChar type.

isPrimaryboolean

Whether the current field is the primary field. Setting this to True makes the current field the primary field.

isPartitionKeyboolean

Whether the current field serves as the partition key. Setting this to True makes the current field serve as the partition key. In this case, manages all partitions in the current collection.

elementTypeParamsobject

Extra field parameters.

max_lengthinteger

An optional parameter for VarChar values that determines the maximum length of the value in the current field.

diminteger

An optional parameter for FloatVector or BinaryVector fields that determines the vector dimension.

max_capacityinteger

An optional parameter for Array field values that determines the maximum number of elements in the current array field.

externalFieldstring

The name of the corresponding column in the external source. Required when creating an external collection.

indexParamsobjectrequired

The index parameters for the function output field.

fieldNamestringrequired

The output field to index. It must match outputField.fieldName.

indexNamestring

The name of the index.

metricTypestring

The metric used by the index.

indexTypestring

The type of the index.

paramsobject

Additional index parameters.

index_typestring

The index implementation used for the function output field.

Example Value: SPARSE_INVERTED_INDEX
bash
export TOKEN="db_admin:xxxxxxxxxxxxx"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/add_function_field" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Request-Timeout: 5" \
--header "Content-Type: application/json" \
-d '{
"dbName": "default",
"collectionName": "documents",
"function": {
"name": "bm25_fn",
"type": "BM25",
"inputFieldNames": [
"text"
],
"outputFieldNames": [
"sparse"
]
},
"outputField": {
"fieldName": "sparse",
"dataType": "SparseFloatVector"
},
"indexParams": {
"metricType": "BM25",
"fieldName": "sparse",
"indexName": "sparse_index",
"params": {
"index_type": "SPARSE_INVERTED_INDEX"
}
}
}'
Responses

Returns an empty object.

codeinteger

Response code.

dataobject

Returns an error message.

codeinteger

Response code.

messagestring

Error message.

Successjson
{
"code": 0,
"data": {}
}
Ctrl I