当前位置: 首页 > news >正文

Milvus Collection 基本操作(Java SDK)

Collection 是 Milvus 中用于组织向量数据的基本单元。一个 Collection 类似于关系数据库中的“表”,包含 schema(字段定义)、索引、分区等。

所有操作均通过MilvusServiceClient实例调用,并返回R<T>类型的结果对象(R表示 Result),可通过.getStatus()判断是否成功,.getData()获取结果数据。


0. 前置工作

要配置好MilvusServiceClient,写好yaml配置文件,spring 会自动注入


✅ 1. 创建 Collection

方法

R<RpcStatus>createCollection(CreateCollectionParamrequestParam)

示例

CreateCollectionParamparam=CreateCollectionParam.newBuilder().withCollectionName("example_collection").withSchema(schema)// 需提前定义 CollectionSchema.build();R<RpcStatus>response=client.createCollection(param);if(response.getStatus()==R.Status.Success.getCode()){System.out.println("Collection created successfully.");}

⚠️schema需通过FieldType构建,包含主键、向量字段等。


❌ 2. 删除 Collection

方法

R<RpcStatus>dropCollection(DropCollectionParamrequestParam)

示例

DropCollectionParamparam=DropCollectionParam.newBuilder().withCollectionName("example_collection").build();R<RpcStatus>response=client.dropCollection(param);

删除后无法恢复,请谨慎操作。


🔍 3. 检查 Collection 是否存在

方法

R<Boolean>hasCollection(HasCollectionParamrequestParam)

示例

HasCollectionParamparam=HasCollectionParam.newBuilder().withCollectionName("example_collection").build();R<Boolean>response=client.hasCollection(param);if(response.getData()){System.out.println("Collection exists.");}

📋 4. 查看 Collection 详细信息(Describe)

方法

R<DescribeCollectionResponse>describeCollection(DescribeCollectionParamrequestParam)

示例

DescribeCollectionParamparam=DescribeCollectionParam.newBuilder().withCollectionName("example_collection").build();R<DescribeCollectionResponse>response=client.describeCollection(param);if(response.getStatus()==R.Status.Success.getCode()){DescribeCollectionResponsedesc=response.getData();System.out.println("Schema: "+desc.getSchema());System.out.println("Shards: "+desc.getShardsNum());}

📊 5. 获取 Collection 统计信息

方法

R<GetCollectionStatisticsResponse>getCollectionStatistics(GetCollectionStatisticsParamrequestParam)

示例

GetCollectionStatisticsParamparam=GetCollectionStatisticsParam.newBuilder().withCollectionName("example_collection").build();R<GetCollectionStatisticsResponse>response=client.getCollectionStatistics(param);if(response.getStatus()==R.Status.Success.getCode()){Map<String,String>stats=response.getData().getStatsList().stream().collect(Collectors.toMap(stat->stat.getKey(),stat->stat.getValue()));System.out.println("Row count: "+stats.get("row_count"));}

📥 6. 加载 Collection 到内存(Load)

查询或搜索前必须先加载。

方法

R<RpcStatus>loadCollection(LoadCollectionParamrequestParam)

示例

LoadCollectionParamparam=LoadCollectionParam.newBuilder().withCollectionName("example_collection").build();R<RpcStatus>response=client.loadCollection(param);

可选:指定资源组(Resource Group)、副本数等。


📤 7. 释放 Collection(Release)

从内存中卸载,节省资源。

方法

R<RpcStatus>releaseCollection(ReleaseCollectionParamrequestParam)

示例

ReleaseCollectionParamparam=ReleaseCollectionParam.newBuilder().withCollectionName("example_collection").build();R<RpcStatus>response=client.releaseCollection(param);

🔄 8. 重命名 Collection

方法

R<RpcStatus>renameCollection(RenameCollectionParamrequestParam)

示例

RenameCollectionParamparam=RenameCollectionParam.newBuilder().withOldCollectionName("old_name").withNewCollectionName("new_name").build();R<RpcStatus>response=client.renameCollection(param);

注意:部分 Milvus 版本可能不支持此功能。


🗂️ 9. 列出所有 Collections

方法

R<ShowCollectionsResponse>showCollections(ShowCollectionsParamrequestParam)

示例

ShowCollectionsParamparam=ShowCollectionsParam.newBuilder().addCollectionName("example_collection")// 可选:过滤特定集合.build();R<ShowCollectionsResponse>response=client.showCollections(param);List<String>names=response.getData().getCollectionNamesList();System.out.println("Collections: "+names);

⚙️ 10. 修改 Collection 属性(如 TTL)

方法

R<RpcStatus>alterCollection(AlterCollectionParamrequestParam)

示例(设置 TTL 为 1 小时)

JsonObjectproperties=newJsonObject();properties.addProperty("collection.ttl.seconds","3600");AlterCollectionParamparam=AlterCollectionParam.newBuilder().withCollectionName("example_collection").withProperties(properties).build();R<RpcStatus>response=client.alterCollection(param);

支持的属性取决于 Milvus 版本。


🧪 附加:高阶简化接口(High-level API)

如果你使用的是high-level 接口(更易用):

  • createCollection(CreateSimpleCollectionParam):只需指定名称、维度、相似度类型。
  • listCollections(ListCollectionsParam):返回封装好的ListCollectionsResponse

📝 注意事项

  • 所有操作默认启用自动重试机制(可配置)。
  • 网络异常、服务不可用等会触发重试(非业务错误如INVALID_ARGUMENT不重试)。
  • 使用withTimeout(...)可为单次操作设置超时。
  • 操作前确保客户端已成功连接(构造函数中会自动执行connect)。

📚 相关类参考

说明
CreateCollectionParam创建集合参数构建器
CollectionSchema集合结构定义(字段列表)
FieldType字段类型(如Int64,FloatVector
R<T>统一返回结果封装
RpcStatus通用操作状态(成功/失败)

如需完整示例项目,可参考 Milvus Java SDK 官方 GitHub。

http://www.jsqmd.com/news/440566/

相关文章:

  • 浅析在Cursor中落地AI原生开发工作流OpenSpec规范管理工具:面向AI辅助工作流的规范驱动开发技术实践
  • 2026年GEO服务商怎么选?豆包广告公司联系方式一览 - 品牌2026
  • MilvusVectorStore 使用指南 ——基于spring-ai(可用于搭建Rag)
  • 2026年知名的pa66隔热条工厂推荐:门窗隔热条/尼龙隔热条/铝合金隔热条源头工厂推荐 - 行业平台推荐
  • RASPI裸机8(Filesystem)(TODO)
  • 2026年质量好的吸塑PET片厂家推荐:折盒PET片/食品级PET片/透明窗口膜PET片实力工厂怎么选 - 行业平台推荐
  • 记录win下,WPF设置 System.AppUserModel.PreventPinning 属性用于阻止用户将应用程序固定到任务栏
  • AI时代如何获客?联系哪家公司? - 品牌2026
  • P3750 [六省联考 2017] 分手是祝愿题解
  • 【算法面试必刷】200. 岛屿数量
  • 搞懂这两个组件,Spring 配置问题少一半!
  • 3.5 Spring Boot的配置文件
  • RASPI裸机7(exceptions)(TODO)
  • 【电力系统】储能调峰调频模型优化求解附Matlab代码
  • 00.状态码
  • 2026年热门的侧装缓冲滑轨厂家推荐:钢珠缓冲滑轨/抽屉缓冲滑轨/骑马抽缓冲滑轨值得信赖的生产厂家 - 行业平台推荐
  • 2026年知名的无油空压机品牌推荐:往复式空压机/活塞往复式空压机/直联便携式空压机源头厂家推荐几家 - 行业平台推荐
  • Go 加密性能极限优化实战手册
  • 详细介绍:spring boot项目欢迎页设置方式
  • Skills搭建全流程,看完你的Skills就牛了!存一下吧!
  • 北京的 Clara ,她是如何从一个小白开始做出海独立站的
  • 2026年DeepSeek推广公司有哪些?联系方式与服务对比一览 - 品牌2026
  • ngx_http_index_set_index
  • 2026年知名的废气处理公司推荐:西安废气处理/陕西废气处理工程制造厂家哪家靠谱 - 行业平台推荐
  • 力扣 第491场周赛(A~D)
  • 00.HTTP 常见状态码
  • C语言联合体&枚举
  • Any Video Downloader:免费全能视频下载利器,8K高清一键保存
  • 2026年比较好的轻钢龙骨公司推荐:防腐轻钢龙骨/装配式轻钢龙骨实力厂家如何选 - 行业平台推荐
  • 【小白笔记】功能函数与主函数的布局