mirror of
https://gitee.com/dromara/MilvusPlus.git
synced 2025-12-06 08:58:26 +08:00
commit
4835bf5ebd
@ -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>
|
||||
```
|
||||
|
||||
|
||||
@ -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>
|
||||
```
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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, // 数据类型为浮点型向量
|
||||
|
||||
@ -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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user