springboot集成milvus
时间: 2025-06-01 16:19:43 浏览: 40
### Spring Boot集成Milvus的配置教程与示例代码
在Spring Boot项目中集成Milvus,可以通过配置文件和自定义配置类来实现对Milvus数据库的操作。以下是详细的配置教程及示例代码。
#### 1. 添加依赖
首先,在`pom.xml`文件中添加Milvus客户端的依赖:
```xml
<dependency>
<groupId>io.milvus</groupId>
<artifactId>pymilvus</artifactId>
<version>2.2.0</version>
</dependency>
```
注意:如果使用的是Java环境,确保选择正确的Java SDK版本[^3]。
#### 2. 配置文件设置
在`application.yml`或`application.properties`文件中添加Milvus的连接配置:
```yaml
milvus:
host: localhost
port: 19530
collection-name: my_collection
vector-dimension: 128
```
上述配置指定了Milvus的服务地址、端口、集合名称以及向量维度等信息[^3]。
#### 3. 创建配置类
创建一个配置类`MilvusConfig.java`,用于加载配置并初始化Milvus客户端:
```java
package com.example.milvusdemo.config;
import io.milvus.client.MilvusClient;
import io.milvus.client.MilvusServiceClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MilvusConfig {
@Value("${milvus.host}")
private String milvusHost;
@Value("${milvus.port}")
private int milvusPort;
@Bean
public MilvusClient milvusClient() {
return new MilvusServiceClient(milvusHost, milvusPort);
}
}
```
此配置类通过`@Value`注解读取`application.yml`中的Milvus配置,并创建`MilvusClient`实例[^3]。
#### 4. 示例代码:插入数据到Milvus
以下是一个简单的示例,展示如何将向量数据插入到Milvus集合中:
```java
package com.example.milvusdemo.service;
import io.milvus.client.*;
import io.milvus.param.collection.CreateCollectionParam;
import io.milvus.param.collection.FieldType;
import io.milvus.param.dml.InsertParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class MilvusService {
@Autowired
private MilvusClient milvusClient;
public void createCollection(String collectionName, int vectorDimension) throws Exception {
List<FieldType<?>> fields = new ArrayList<>();
fields.add(FieldTypePrimaryKey.builder().name("id").dataType(FieldType.DataType.INT64).autoID(true).build());
fields.add(FieldTypeVector.builder().name("vector").dataType(FieldType.DataType.FLOAT_VECTOR).dimension(vectorDimension).build());
CreateCollectionParam param = CreateCollectionParam.create()
.withCollectionName(collectionName)
.withFields(fields);
R<RpcStatus> response = milvusClient.createCollection(param);
if (response.getStatus() != R.Status.Success.getCode()) {
throw new Exception("Failed to create collection: " + response.getMessage());
}
}
public void insertData(String collectionName, List<List<Float>> vectors) throws Exception {
InsertParam insertParam = InsertParam.create()
.withCollectionName(collectionName)
.withVectors(vectors);
R<MutationResult> response = milvusClient.insert(insertParam);
if (response.getStatus() != R.Status.Success.getCode()) {
throw new Exception("Failed to insert data: " + response.getMessage());
}
}
}
```
上述代码实现了两个功能:创建集合和插入向量数据。通过`MilvusClient`对象调用相关方法完成操作[^3]。
#### 5. 启动类
确保Spring Boot应用程序的主类已正确配置,例如:
```java
package com.example.milvusdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MilvusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MilvusDemoApplication.class, args);
}
}
```
#### 注意事项
- 确保Milvus服务已启动并运行正常。
- 根据实际需求调整配置文件中的参数。
- 如果需要支持AI模型集成,可以结合Spring AI的功能简化开发流程[^2]。
---
阅读全文
相关推荐



















