milvus-logo
LFAI
< Docs
  • Java

insert()

A MilvusClient interface. This method inserts entities into a specified collection.

R<MutationResult> insert(InsertParam requestParam);

InsertParam

Use the InsertParam.Builder to construct an InsertParam object.

import io.milvus.param.InsertParam;
InsertParam.Builder builder = InsertParam.newBuilder();

Methods of InsertParam.Builder:

Method Description Parameters
withCollectionName(String collectionName) Sets the target collection name. Collection name cannot be empty or null. collectionName: The name of the collection to insert data into.
withPartitionName(String partitionName) Sets the target partition name(optional). partitionName: The name of the partition to insert data into.
withFields(List\ fields) Sets the data to be inserted. The field list cannot be empty.
Note that no input is required for the primary key field if auto_id is enabled.
fields: A list of Field objects, each representing a field.
withRows(List\ rows) Sets the row-based data to be inserted. The row list cannot be empty.
Note that if the withFields() is called, the rows by withRows() will be ignored.
rows: A list of JSONObject objects, each representing a row in key-value format.
- Requires List\ if the data type is Bool.
- Requires List\ if the data type is Int64.
- Requires List\ or List\ if the data type is Int8/Int16/Int32.
- Value is List\ if the data type is Float.
- Value is List\ if the data type is Double.
- Value is List\ if the data type is Varchar.
- Value is List\gt; if the data type is Array, the inner List type must be equal to the element type of the Array field.
- Value is List\gt;, if the data type is FloatVector.
- Value is List\, if the data type is BinaryVector/Float16Vector/BFloat16Vector.
- Value is List\gt; if the data type is SparseFloatVector.
build() Constructs an InsertParam object. N/A

The InsertParam.Builder.build() can throw the following exceptions:

  • ParamException: error if the parameter is invalid.

Field

A tool class to hold a data field.

Methods of InsertParam.Field:

Method Description Parameters
Field(String name, List\ values)
This class only provides a constructor to create a Field object.
name: The name of the data field. values:
- Requires List\ if the data type is Bool.
- Requires List\ if the data type is Int64.
- Requires List\ or List\ if the data type is Int8/Int16/Int32.
- Requires List\ if the data type is Float.
- Requires List\ if the data type is Double.
- Requires List\ if the data type is Varchar.
- Requires List\gt; if the data type is Array, the inner List type must be equal to the element type of the Array field.
- Requires List\gt;, if the data type is FloatVector.
- Requires List\, if the data type is BinaryVector/Float16Vector/BFloat16Vector.
- Requires List\gt; if the data type is SparseFloatVector.

Returns

This method catches all the exceptions and returns an R<MutationResult> object.

  • If the API fails on the server side, it returns the error code and message from the server.

  • If the API fails by RPC exception, it returns R.Status.Unknown and the error message of the exception.

  • If the API succeeds, it returns a valid MutationResult held by the R template. You can use MutationResultWrapper to get the returned information.

MutationResultWrapper

A tool class to encapsulate the MutationResult.

import io.milvus.response.MutationResultWrapper;
MutationResultWrapper wrapper = new MutationResultWrapper(mutationResult);

Methods of MutationResultWrapper:

Method Description Returns
getInsertCount() Gets the row count of the inserted entities.
long
getLongIDs()
Gets the long ID array returned by the insert() interface if the primary key field is int64 type. Throw ParamException if the primary key type is not int64.
List\
getStringIDs() Gets the string ID array returned by the insert() interface if the primary key field is varchar type. Throw ParamException if the primary key type is not varchar type. List\
getDeleteCount() Gets the row count of the deleted entities. Currently, this value is always equal to the input row count. long
getOperationTs()
Gets the timestamp of the operation marked by the server. long

Example

import io.milvus.param.*;
import io.milvus.response.MutationResultWrapper;
import io.milvus.grpc.MutationResult;

int rowCount = 10000;
List<Long> ids = new ArrayList<>();
for (long i = 0L; i < rowCount; ++i) {
    ids.add(i);
}
List<List<Float>> vectors = generateFloatVectors(rowCount);

List<InsertParam.Field> fields = new ArrayList<>();
fields.add(new InsertParam.Field("id", ids));
fields.add(new InsertParam.Field("vec", vectors));

InsertParam param = InsertParam.newBuilder()
        .withCollectionName(COLLECTION_NAME)
        .withFields(fields)
        .build();
R<MutationResult> response = client.insert(param);
if (response.getStatus() != R.Status.Success.getCode()) {
    System.out.println(response.getMessage());
}

MutationResultWrapper wrapper = new MutationResultWrapper(response.getData());
System.out.println(wrapper.getInsertCount() + " rows inserted");