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.
📘NotesIn Java SDK versions v2.4.1 or earlier versions, the input is a
fastjson.JSONObject
. Butfastjson
is not recommended to use now because of its unsafe deserialization vulnerability. Therefore, replacefastjson
withgson
if you use the Java SDK of v2.4.2 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);