milvus-logo
LFAI
< Docs
  • Java
    • v2

upsert()

This operation inserts or updates data in a specific collection.

public UpsertResp upsert(UpsertReq request)

Request Syntax

upsert(UpsertReq.builder()
    .data(List<JsonObject> data)
    .collectionName(String collectionName)
    .partitionName(String partitionName)
    .build()
)

BUILDER METHODS:

  • data(List<JsonObject> data)

    The data to insert or update into the current collection.

    The data to insert or update should be a gson.JsonObject that matches the schema of the current collection or a list of such dictionaries.

    The following code assumes that the schema of the current collection has two fields named id and vector. The former is the primary field and the latter is a field to hold 5-dimensional vector embeddings.

    notes

    In Java SDK versions v2.3.7 or earlier versions, the input is a fastjson.JSONObject. But fastjson is not recommended to use now because of its unsafe deserialization vulnerability. Therefore, replace fastjson with gson if you use the Java SDK of v2.3.8 or later releases.

    List<JsonObject> data = new ArrayList<>();
    
    JsonObject dict1 = new JsonObject();
    List<Float> vectorArray1 = new ArrayList<>();
    vectorArray1.add(0.37417449965222693);
    vectorArray1.add(-0.9401784221711342);
    vectorArray1.add(0.9197526367693833);
    vectorArray1.add(0.49519396415367245);
    vectorArray1.add(-0.558567588166478);
    
    dict1.addProperty("id", 1L);
    dict1.add("vector", gson.toJsonTree(vectorArray1));
    
    JsonObject dict2 = new JsonObject();
    JSONArray vectorArray2 = new ArrayList<>();
    vectorArray2.add(0.46949086179692356);
    vectorArray2.add(-0.533609076732849);
    vectorArray2.add(-0.8344432775467099);
    vectorArray2.add(0.9797361846081416);
    vectorArray2.add(0.6294256393761057);
    
    dict2.addProperty("id", 2L);
    dict2.add("vector", gson.toJsonTree(vectorArray2));
    
    data.add(dict1);
    data.add(dict2);
    
  • collectionName(String collectionName)

    The name of an existing collection.

  • partitionName(String partitionName)

    The name of an existing partition.

RETURN TYPE:

UpsertResp

RETURNS:

An UpsertResp object that contains information about the number of inserted or updated entities.

EXCEPTIONS:

  • MilvusClientExceptions

    This exception will be raised when any error occurs during this operation.

Example

// upsert operation
JsonObject jsonObject = new JsonObject();
List<Float> vectorList = new ArrayList<>();
vectorList.add(2.0f);
vectorList.add(3.0f);
jsonObject.add("vector", gson.toJsonTree(vectorList));
jsonObject.addProperty("id", 0L);
UpsertReq upsertReq = UpsertReq.builder()
        .collectionName("test")
        .data(Collections.singletonList(jsonObject))
        .build();

client.upsert(upsertReq);
Feedback

Was this page helpful?