From c6e0cab442d166c4f5b05eb82104db68f2a91be4 Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Fri, 11 Apr 2025 18:26:40 +0800 Subject: [PATCH] =?UTF-8?q?20250411=20=E5=88=9B=E5=BB=BAmilvus=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=85=8D=E7=BD=AE=E7=B1=BB=E3=80=81=E5=88=9B=E5=BB=BA?= =?UTF-8?q?milvus=E7=9B=B8=E4=BC=BC=E6=80=A7=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/config/MilvusConfig.java | 20 ++++++++++ .../com/ai/controller/MilvusController.java | 20 ++++++++++ src/main/java/com/ai/model/Product.java | 15 ++++++++ .../java/com/ai/service/SimilarService.java | 38 +++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 src/main/java/com/ai/config/MilvusConfig.java create mode 100644 src/main/java/com/ai/controller/MilvusController.java create mode 100644 src/main/java/com/ai/model/Product.java create mode 100644 src/main/java/com/ai/service/SimilarService.java diff --git a/src/main/java/com/ai/config/MilvusConfig.java b/src/main/java/com/ai/config/MilvusConfig.java new file mode 100644 index 0000000..0f694b3 --- /dev/null +++ b/src/main/java/com/ai/config/MilvusConfig.java @@ -0,0 +1,20 @@ +package com.ai.config; + +import io.milvus.client.MilvusClient; +import io.milvus.client.MilvusServiceClient; +import io.milvus.param.ConnectParam; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MilvusConfig { + + @Bean + public MilvusClient milvusClient() { + ConnectParam connectParam = ConnectParam.newBuilder() + .withHost("localhost") + .withPort(19530) + .build(); + return new MilvusServiceClient(connectParam); + } +} diff --git a/src/main/java/com/ai/controller/MilvusController.java b/src/main/java/com/ai/controller/MilvusController.java new file mode 100644 index 0000000..99c8324 --- /dev/null +++ b/src/main/java/com/ai/controller/MilvusController.java @@ -0,0 +1,20 @@ +package com.ai.controller; + +import com.ai.service.SimilarService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/milvus") +public class MilvusController { + + @Autowired + private SimilarService similarService; + + @RequestMapping("/create") + public String create() { + similarService.createCollection(); + return "milvus collection create"; + } +} diff --git a/src/main/java/com/ai/model/Product.java b/src/main/java/com/ai/model/Product.java new file mode 100644 index 0000000..3f99543 --- /dev/null +++ b/src/main/java/com/ai/model/Product.java @@ -0,0 +1,15 @@ +package com.ai.model; + +import lombok.Data; + +@Data +public class Product { + + private Long spuId; + + private String spuName; + + private String description; + + private String type; +} diff --git a/src/main/java/com/ai/service/SimilarService.java b/src/main/java/com/ai/service/SimilarService.java new file mode 100644 index 0000000..98e7f3c --- /dev/null +++ b/src/main/java/com/ai/service/SimilarService.java @@ -0,0 +1,38 @@ +package com.ai.service; + +import io.milvus.client.MilvusClient; +import io.milvus.grpc.DataType; +import io.milvus.param.collection.CreateCollectionParam; +import io.milvus.param.collection.FieldType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class SimilarService { + + @Autowired + private MilvusClient milvusClient; + + public void createCollection(){ + //定义字段 + FieldType spuId = FieldType.newBuilder() + .withName("spu_id") + .withDataType(DataType.Int64) + .withPrimaryKey(true) + .build(); + + FieldType vectorField = FieldType.newBuilder() + .withName("type_vector") + .withDataType(DataType.FloatVector) + .withDimension(1536) + .build(); + + CreateCollectionParam createParam = CreateCollectionParam.newBuilder() + .withCollectionName("similar_collection") + .addFieldType(spuId) + .addFieldType(vectorField) + .build(); + + milvusClient.createCollection(createParam); + } +}