diff --git a/README.cn.md b/README.cn.md index 505e110..652ffa2 100644 --- a/README.cn.md +++ b/README.cn.md @@ -31,7 +31,7 @@ org.dromara milvus-plus-core - 2.0.0 + 2.1.0 ``` @@ -41,7 +41,7 @@ Spring应用支持: org.dromara milvus-plus-boot-starter - 2.0.0 + 2.1.0 ``` @@ -51,7 +51,7 @@ Solon应用支持: org.dromara milvus-plus-solon-plugin - 2.0.0 + 2.1.0 ``` diff --git a/README.md b/README.md index d639050..13b8178 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Custom extension support: org.dromara milvus-plus-core - 2.0.0 + 2.1.0 ``` @@ -37,7 +37,7 @@ Spring application support: org.dromara milvus-plus-boot-starter - 2.0.0 + 2.1.0 ``` @@ -47,7 +47,7 @@ Solon application support: org.dromara milvus-plus-solon-plugin - 2.0.0 + 2.1.0 ``` diff --git a/milvus-core-demo/pom.xml b/milvus-core-demo/pom.xml index e3743d0..ddff3d5 100644 --- a/milvus-core-demo/pom.xml +++ b/milvus-core-demo/pom.xml @@ -17,7 +17,7 @@ org.dromara milvus-plus-core - 2.0.0 + 2.1.0 diff --git a/milvus-plus-parent/pom.xml b/milvus-plus-parent/pom.xml index 89cf4e2..11e44fa 100644 --- a/milvus-plus-parent/pom.xml +++ b/milvus-plus-parent/pom.xml @@ -30,7 +30,7 @@ - 2.0.0 + 2.1.0 ${java.version} ${java.version} 3.11.0 diff --git a/milvus-solon-demo/pom.xml b/milvus-solon-demo/pom.xml index 42be884..de1a78b 100755 --- a/milvus-solon-demo/pom.xml +++ b/milvus-solon-demo/pom.xml @@ -28,7 +28,7 @@ org.dromara milvus-plus-solon-plugin - 2.0.0 + 2.1.0 org.noear diff --git a/milvus-spring-demo/pom.xml b/milvus-spring-demo/pom.xml index da6e25a..6edb8a1 100644 --- a/milvus-spring-demo/pom.xml +++ b/milvus-spring-demo/pom.xml @@ -21,7 +21,7 @@ org.dromara milvus-plus-boot-starter - 2.0.0 + 2.1.0 diff --git a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/ApplicationRunnerTest.java b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/ApplicationRunnerTest.java index b370371..f7d630a 100644 --- a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/ApplicationRunnerTest.java +++ b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/ApplicationRunnerTest.java @@ -1,10 +1,15 @@ package org.dromara.milvus.demo; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; import io.milvus.v2.service.vector.response.InsertResp; +import io.milvus.v2.service.vector.response.UpsertResp; import lombok.extern.slf4j.Slf4j; -import org.dromara.milvus.demo.mapper.FaceMilvusMapper; import org.dromara.milvus.demo.model.Face; +import org.dromara.milvus.demo.model.FaceConstants; +import org.dromara.milvus.demo.model.FaceMilvusMapper; +import org.dromara.milvus.demo.model.Person; import org.dromara.milvus.plus.model.vo.MilvusResp; import org.dromara.milvus.plus.model.vo.MilvusResult; import org.springframework.boot.ApplicationArguments; @@ -27,22 +32,28 @@ public class ApplicationRunnerTest implements ApplicationRunner { @Override public void run(ApplicationArguments args) { - insertFace(); - getByIdTest(); - vectorQuery(); + // insertFace(); +// getByIdTest(); +// vectorQuery(); scalarQuery(); + // update(); } private void insertFace() { List faces = LongStream.range(1, 10) .mapToObj(i -> { Face faceTmp = new Face(); - faceTmp.setPersonId(i); + // faceTmp.setPersonId(i); List vectorTmp = IntStream.range(0, 128) .mapToObj(j -> (float) (Math.random() * 100)) .collect(Collectors.toList()); faceTmp.setFaceVector(vectorTmp); faceTmp.setPersonName(i % 2 == 0 ? "张三" + i : "李四" + i); + Person person=new Person(); + person.setName(faceTmp.getPersonName()); + person.setAge((int) (i*100)); + person.setImages(Lists.newArrayList("https://baidu.com")); + faceTmp.setPerson(person); return faceTmp; }) .collect(Collectors.toList()); @@ -64,7 +75,7 @@ public class ApplicationRunnerTest implements ApplicationRunner { List vector = IntStream.range(0, 128) .mapToObj(i -> (float) (Math.random() * 100)) .collect(Collectors.toList()); - MilvusResp>> query1 = mapper.queryWrapper().alias("alias_face") + MilvusResp>> query1 = mapper.queryWrapper() .vector(Face::getFaceVector, vector) .like(Face::getPersonName, "张三") .topK(3) @@ -75,9 +86,20 @@ public class ApplicationRunnerTest implements ApplicationRunner { public void scalarQuery() { //标量查询 MilvusResp>> query2 = mapper.queryWrapper() - .eq(Face::getPersonId, 2L) + // .eq(Face::getPersonId, 2L) + .jsonContains("person_info[\"images\"]","https://baidu.com") .limit(3L) .query(); log.info("标量查询 query--queryWrapper---{}", JSONObject.toJSONString(query2)); } + public void update(){ + Face faceTmp = new Face(); + List vectorTmp = IntStream.range(0, 128) + .mapToObj(j -> (float) (Math.random() * 100)) + .collect(Collectors.toList()); + faceTmp.setFaceVector(vectorTmp); + faceTmp.setPersonName("赵六"); + MilvusResp resp = mapper.updateWrapper().eq(FaceConstants.PERSON_NAME,"张三").update(faceTmp); + System.out.printf("===="+ JSON.toJSONString(resp)); + } } \ No newline at end of file diff --git a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/mapper/FaceMilvusMapper.java b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/mapper/FaceMilvusMapper.java deleted file mode 100644 index c33bd92..0000000 --- a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/mapper/FaceMilvusMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.dromara.milvus.demo.mapper; - -import org.dromara.milvus.demo.model.Face; -import org.dromara.milvus.plus.mapper.MilvusMapper; -import org.springframework.stereotype.Component; - -@Component -public class FaceMilvusMapper extends MilvusMapper { - -} diff --git a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Face.java b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Face.java index 1f75b37..4489255 100644 --- a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Face.java +++ b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Face.java @@ -8,14 +8,15 @@ import org.dromara.milvus.plus.annotation.*; import java.util.List; @Data -@MilvusCollection(name = "face_collection", alias = {"alias_face"}) +@MilvusCollection(name = "face_collection") @MilvusPartition(name = {"face_001", "face_002"}) +@GenerateMilvusMapper public class Face { @MilvusField( name = "person_id", // 字段名称 dataType = DataType.Int64, // 数据类型为64位整数 isPrimaryKey = true, // 标记为主键 - autoID = false // 假设这个ID是自动生成的 + autoID = true // 假设这个ID是自动生成的 ) private Long personId; // 人员的唯一标识符 @@ -25,6 +26,12 @@ public class Face { ) private String personName; // 人员姓名 + @MilvusField( + name = "person_info", + dataType = DataType.JSON + ) + private Person person; + @MilvusField( name = "face_vector", // 字段名称 dataType = DataType.FloatVector, // 数据类型为浮点型向量 diff --git a/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Person.java b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Person.java new file mode 100644 index 0000000..7636274 --- /dev/null +++ b/milvus-spring-demo/src/main/java/org/dromara/milvus/demo/model/Person.java @@ -0,0 +1,12 @@ +package org.dromara.milvus.demo.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class Person { + private String name; + private Integer age; + private List images; +}