!24 dev to main

Merge pull request !24 from xgc/dev
This commit is contained in:
xgc 2024-06-14 11:40:33 +00:00 committed by Gitee
commit 4835bf5ebd
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
10 changed files with 60 additions and 29 deletions

View File

@ -31,7 +31,7 @@
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-core</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```
@ -41,7 +41,7 @@ Spring应用支持
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-boot-starter</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```
@ -51,7 +51,7 @@ Solon应用支持
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-solon-plugin</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

View File

@ -27,7 +27,7 @@ Custom extension support:
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-core</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```
@ -37,7 +37,7 @@ Spring application support:
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-boot-starter</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```
@ -47,7 +47,7 @@ Solon application support:
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-solon-plugin</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

View File

@ -17,7 +17,7 @@
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-core</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
</dependencies>
<dependencyManagement>

View File

@ -30,7 +30,7 @@
</developer>
</developers>
<properties>
<revision>2.0.0</revision>
<revision>2.1.0</revision>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven-compiler.version>3.11.0</maven-compiler.version>

View File

@ -28,7 +28,7 @@
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-solon-plugin</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.noear</groupId>

View File

@ -21,7 +21,7 @@
<dependency>
<groupId>org.dromara</groupId>
<artifactId>milvus-plus-boot-starter</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
</dependencies>
<dependencyManagement>

View File

@ -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<Face> faces = LongStream.range(1, 10)
.mapToObj(i -> {
Face faceTmp = new Face();
faceTmp.setPersonId(i);
// faceTmp.setPersonId(i);
List<Float> 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<Float> vector = IntStream.range(0, 128)
.mapToObj(i -> (float) (Math.random() * 100))
.collect(Collectors.toList());
MilvusResp<List<MilvusResult<Face>>> query1 = mapper.queryWrapper().alias("alias_face")
MilvusResp<List<MilvusResult<Face>>> 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<List<MilvusResult<Face>>> 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<Float> vectorTmp = IntStream.range(0, 128)
.mapToObj(j -> (float) (Math.random() * 100))
.collect(Collectors.toList());
faceTmp.setFaceVector(vectorTmp);
faceTmp.setPersonName("赵六");
MilvusResp<UpsertResp> resp = mapper.updateWrapper().eq(FaceConstants.PERSON_NAME,"张三").update(faceTmp);
System.out.printf("===="+ JSON.toJSONString(resp));
}
}

View File

@ -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<Face> {
}

View File

@ -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, // 数据类型为浮点型向量

View File

@ -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<String> images;
}