MilvusStore
public class MilvusStore implements VDBStoreBase, AutoCloseable
io/agentscope/core/rag/store/MilvusStore.java:102–1016Milvus 存储,负责持久化与读取数据。位于 io.agentscope.core.rag.store 包,实现 VDBStoreBase、AutoCloseable。核心成员包括 create、add、search、delete、getClient、getUri。
Milvus vector database store implementation.
This class provides an interface for storing and searching vectors using Milvus, a cloud-native vector database. It implements the VDBStoreBase interface to provide a unified API for vector storage operations.
In Milvus, we use dynamic fields to store the metadata, including the document ID, chunk ID, and original content.
This implementation uses the Milvus Java SDK v2 (io.milvus:milvus-sdk-java). To use this class, add the following dependency:
`<dependency>
<groupId>io.milvus</groupId>
<artifactId>milvus-sdk-java</artifactId>
<version>2.6.16</version>
</dependency>
`
Example usage:
`// Using builder with authentication and timeout options
try (MilvusStore store = MilvusStore.builder()
.uri("http://localhost:19530")
.databaseName("my_database")
.collectionName("my_collection")
.dimensions(1024)
.token("root:Milvus")
.connectTimeoutMs(30000)
.build()) {
store.add(document).block();
List<Document> results = store.search(queryEmbedding, 5).block();
// Store is automatically closed here
}
`
Authentication options:
-
Token-based: Use token("username:password") format
-
Username/Password: Use username() and password() methods
-
No auth: Leave token/username/password empty for local instances
Note: The uri parameter should be a full HTTP URL including protocol and port, for example: "http://localhost:19530" or "https://milvus.example.com:19530"
嵌套类摘要Nested Class Summary
| 类Class | 类型Kind | 说明Description |
|---|---|---|
Builder | 类class | 构建器,用于构建并配置目标实例。 Builder for creating MilvusStore instances with fluent configuration. |
方法摘要Method Summary
方法详情Method Detail
create
public static MilvusStore create(String uri, String collectionName, int dimensions) throws VectorStoreException
创建并返回实例。
Creates a new MilvusStore with minimal configuration.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
uri | String | URI(类型 `String`)。the Milvus server URI (e.g., "http://localhost:19530") |
collectionName | String | 集合到使用的名称。the name of the collection to use |
dimensions | int | 向量维度(类型 `int`)。the dimension of vectors that will be stored |
MilvusStoreVectorStoreException可能抛出 `VectorStoreException`。Thrown when the operation cannot be completed.
io/agentscope/core/rag/store/MilvusStore.java:208–212add
public Mono<Void> add(List<Document> documents)
设置添加。
Performs the add operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
documents | List<Document> | 文档列表(类型 `List`)。The documents. |
Mono<Void>io/agentscope/core/rag/store/MilvusStore.java:214–259search
public Mono<List<Document>> search(SearchDocumentDto searchDocumentDto)
设置搜索。
Performs the search operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
searchDocumentDto | SearchDocumentDto | 搜索文档 Dto(类型 `SearchDocumentDto`)。The search document dto. |
Mono<List<Document>>io/agentscope/core/rag/store/MilvusStore.java:261–298delete
public Mono<Boolean> delete(String docId)
删除数据。
Performs the delete operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
docId | String | 文档标识(类型 `String`)。The doc id. |
Mono<Boolean>io/agentscope/core/rag/store/MilvusStore.java:300–323getClient
public MilvusClientV2 getClient() throws VectorStoreException
获取客户端。
Gets the underlying Milvus client for advanced operations.
MilvusClientV2VectorStoreException可能抛出 `VectorStoreException`。Thrown when the operation cannot be completed.
io/agentscope/core/rag/store/MilvusStore.java:340–343getUri
public String getUri()
获取URI。
Gets the Milvus server URI.
Stringio/agentscope/core/rag/store/MilvusStore.java:732–734getCollectionName
public String getCollectionName()
获取集合名称。
Gets the collection name.
Stringio/agentscope/core/rag/store/MilvusStore.java:741–743getDimensions
public int getDimensions()
获取向量维度。
Gets the vector dimensions.
intio/agentscope/core/rag/store/MilvusStore.java:750–752getMetricType
public IndexParam.MetricType getMetricType()
获取指标类型。
Gets the metric type used for similarity search.
IndexParam.MetricTypeio/agentscope/core/rag/store/MilvusStore.java:759–761getDatabaseName
public String getDatabaseName()
获取数据库名称。
Gets the database name.
Stringio/agentscope/core/rag/store/MilvusStore.java:768–770close
public void close()
关闭连接并释放相关资源。
Closes the Milvus client and releases all resources.
io/agentscope/core/rag/store/MilvusStore.java:792–816isClosed
public boolean isClosed()
判断是否已关闭。
Checks if this store has been closed.
booleanio/agentscope/core/rag/store/MilvusStore.java:823–825builder
public static Builder builder()
返回构建器实例。
Creates a new builder for constructing MilvusStore instances.
Builderio/agentscope/core/rag/store/MilvusStore.java:1013–1015嵌套类详情Nested Class Detail
Builder
public static class Builder构建器,用于构建并配置目标实例。位于 io.agentscope.core.rag.store 包。核心成员包括 uri、collectionName、dimensions、token、username、password。
Builder for creating MilvusStore instances with fluent configuration.
Example usage:
`MilvusStore store = MilvusStore.builder()
.uri("http://localhost:19530")
.collectionName("my_collection")
.dimensions(1024)
.token("root:Milvus")
.connectTimeoutMs(30000)
.metricType(IndexParam.MetricType.COSINE)
.build();
`