mirror of
https://gitee.com/dromara/MilvusPlus.git
synced 2025-12-06 17:08:27 +08:00
发布版本 2.1.0
This commit is contained in:
parent
519bd52d04
commit
38c7ce36e6
@ -31,7 +31,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-core</artifactId>
|
<artifactId>milvus-plus-core</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ Spring应用支持:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-boot-starter</artifactId>
|
<artifactId>milvus-plus-boot-starter</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ Solon应用支持:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-solon-plugin</artifactId>
|
<artifactId>milvus-plus-solon-plugin</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ Custom extension support:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-core</artifactId>
|
<artifactId>milvus-plus-core</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ Spring application support:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-boot-starter</artifactId>
|
<artifactId>milvus-plus-boot-starter</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ Solon application support:
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-solon-plugin</artifactId>
|
<artifactId>milvus-plus-solon-plugin</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-core</artifactId>
|
<artifactId>milvus-plus-core</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
</developer>
|
</developer>
|
||||||
</developers>
|
</developers>
|
||||||
<properties>
|
<properties>
|
||||||
<revision>2.0.0</revision>
|
<revision>2.1.0</revision>
|
||||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
<maven-compiler.version>3.11.0</maven-compiler.version>
|
<maven-compiler.version>3.11.0</maven-compiler.version>
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-solon-plugin</artifactId>
|
<artifactId>milvus-plus-solon-plugin</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.noear</groupId>
|
<groupId>org.noear</groupId>
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>milvus-plus-boot-starter</artifactId>
|
<artifactId>milvus-plus-boot-starter</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
|
|||||||
@ -1,10 +1,15 @@
|
|||||||
package org.dromara.milvus.demo;
|
package org.dromara.milvus.demo;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.InsertResp;
|
||||||
|
import io.milvus.v2.service.vector.response.UpsertResp;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.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.MilvusResp;
|
||||||
import org.dromara.milvus.plus.model.vo.MilvusResult;
|
import org.dromara.milvus.plus.model.vo.MilvusResult;
|
||||||
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationArguments;
|
||||||
@ -27,22 +32,28 @@ public class ApplicationRunnerTest implements ApplicationRunner {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments args) {
|
public void run(ApplicationArguments args) {
|
||||||
insertFace();
|
// insertFace();
|
||||||
getByIdTest();
|
// getByIdTest();
|
||||||
vectorQuery();
|
// vectorQuery();
|
||||||
scalarQuery();
|
scalarQuery();
|
||||||
|
// update();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertFace() {
|
private void insertFace() {
|
||||||
List<Face> faces = LongStream.range(1, 10)
|
List<Face> faces = LongStream.range(1, 10)
|
||||||
.mapToObj(i -> {
|
.mapToObj(i -> {
|
||||||
Face faceTmp = new Face();
|
Face faceTmp = new Face();
|
||||||
faceTmp.setPersonId(i);
|
// faceTmp.setPersonId(i);
|
||||||
List<Float> vectorTmp = IntStream.range(0, 128)
|
List<Float> vectorTmp = IntStream.range(0, 128)
|
||||||
.mapToObj(j -> (float) (Math.random() * 100))
|
.mapToObj(j -> (float) (Math.random() * 100))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
faceTmp.setFaceVector(vectorTmp);
|
faceTmp.setFaceVector(vectorTmp);
|
||||||
faceTmp.setPersonName(i % 2 == 0 ? "张三" + i : "李四" + i);
|
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;
|
return faceTmp;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@ -64,7 +75,7 @@ public class ApplicationRunnerTest implements ApplicationRunner {
|
|||||||
List<Float> vector = IntStream.range(0, 128)
|
List<Float> vector = IntStream.range(0, 128)
|
||||||
.mapToObj(i -> (float) (Math.random() * 100))
|
.mapToObj(i -> (float) (Math.random() * 100))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
MilvusResp<List<MilvusResult<Face>>> query1 = mapper.queryWrapper().alias("alias_face")
|
MilvusResp<List<MilvusResult<Face>>> query1 = mapper.queryWrapper()
|
||||||
.vector(Face::getFaceVector, vector)
|
.vector(Face::getFaceVector, vector)
|
||||||
.like(Face::getPersonName, "张三")
|
.like(Face::getPersonName, "张三")
|
||||||
.topK(3)
|
.topK(3)
|
||||||
@ -75,9 +86,20 @@ public class ApplicationRunnerTest implements ApplicationRunner {
|
|||||||
public void scalarQuery() {
|
public void scalarQuery() {
|
||||||
//标量查询
|
//标量查询
|
||||||
MilvusResp<List<MilvusResult<Face>>> query2 = mapper.queryWrapper()
|
MilvusResp<List<MilvusResult<Face>>> query2 = mapper.queryWrapper()
|
||||||
.eq(Face::getPersonId, 2L)
|
// .eq(Face::getPersonId, 2L)
|
||||||
|
.jsonContains("person_info[\"images\"]","https://baidu.com")
|
||||||
.limit(3L)
|
.limit(3L)
|
||||||
.query();
|
.query();
|
||||||
log.info("标量查询 query--queryWrapper---{}", JSONObject.toJSONString(query2));
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -8,14 +8,15 @@ import org.dromara.milvus.plus.annotation.*;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@MilvusCollection(name = "face_collection", alias = {"alias_face"})
|
@MilvusCollection(name = "face_collection")
|
||||||
@MilvusPartition(name = {"face_001", "face_002"})
|
@MilvusPartition(name = {"face_001", "face_002"})
|
||||||
|
@GenerateMilvusMapper
|
||||||
public class Face {
|
public class Face {
|
||||||
@MilvusField(
|
@MilvusField(
|
||||||
name = "person_id", // 字段名称
|
name = "person_id", // 字段名称
|
||||||
dataType = DataType.Int64, // 数据类型为64位整数
|
dataType = DataType.Int64, // 数据类型为64位整数
|
||||||
isPrimaryKey = true, // 标记为主键
|
isPrimaryKey = true, // 标记为主键
|
||||||
autoID = false // 假设这个ID是自动生成的
|
autoID = true // 假设这个ID是自动生成的
|
||||||
)
|
)
|
||||||
private Long personId; // 人员的唯一标识符
|
private Long personId; // 人员的唯一标识符
|
||||||
|
|
||||||
@ -25,6 +26,12 @@ public class Face {
|
|||||||
)
|
)
|
||||||
private String personName; // 人员姓名
|
private String personName; // 人员姓名
|
||||||
|
|
||||||
|
@MilvusField(
|
||||||
|
name = "person_info",
|
||||||
|
dataType = DataType.JSON
|
||||||
|
)
|
||||||
|
private Person person;
|
||||||
|
|
||||||
@MilvusField(
|
@MilvusField(
|
||||||
name = "face_vector", // 字段名称
|
name = "face_vector", // 字段名称
|
||||||
dataType = DataType.FloatVector, // 数据类型为浮点型向量
|
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