MilvusService
# MilvusService 功能
MilvusService 是一个综合性服务,提供对 Milvus 数据库的全面管理,它实现了多个接口:IAMService(身份访问管理服务)、ICMService(集合管理服务)和 IVecMService(向量管理服务)。
# 身份访问管理 (IAMService)
IAMService 接口提供用户和角色的创建、删除、查询以及权限的授予和撤销等功能。
- 创建角色:
createRole(String roleName) - 创建用户:
createUser(String userName, String password) - 查询角色权限:
describeRole(String roleName) - 查询用户信息:
describeUser(String userName) - 删除角色:
dropRole(String roleName) - 删除用户:
dropUser(String userName) - 授予角色权限:
grantPrivilege(String roleName, String objectType, String privilege, String objectName) - 授予用户角色:
grantRole(String roleName, String userName) - 列出所有角色:
listRoles() - 列出所有用户:
listUsers() - 撤销角色权限:
revokePrivilege(String roleName, String objectType, String privilege, String objectName, String databaseName) - 撤销用户角色:
revokeRole(String roleName, String userName) - 更新用户密码:
updatePassword(String userName, String password, String newPassword)
# 集合管理 (ICMService)
ICMService 接口提供集合的创建、删除、查询、重命名、索引创建和管理等功能。
- 创建集合:
createCollection(MilvusEntity milvusEntity) - 添加字段:
addField(String collectionName, AddFieldReq ... addFieldReq) - 获取字段:
getField(String collectionName, String fieldName) - 获取集合详细信息:
describeCollection(String collectionName) - 删除集合:
dropCollection(String collectionName) - 检查集合是否存在:
hasCollection(String collectionName) - 获取集合统计信息:
getCollectionStats(String collectionName) - 重命名集合:
renameCollection(String oldCollectionName, String newCollectionName) - 为集合创建索引:
createIndex(String collectionName, List<IndexParam> indexParams) - 获取集合索引信息:
describeIndex(String collectionName, String fieldName) - 删除集合索引:
dropIndex(String collectionName, String fieldName) - 获取集合或分区的加载状态:
getLoadState(String collectionName, String partitionName) - 加载集合数据到内存:
loadCollection(String collectionName) - 从内存中释放集合数据:
releaseCollection(String collectionName) - 创建集合分区:
createPartition(String collectionName, String partitionName) - 删除集合分区:
dropPartition(String collectionName, String partitionName) - 检查分区是否存在:
hasPartition(String collectionName, String partitionName) - 列出集合中的所有分区:
listPartitions(String collectionName) - 加载集合分区到内存:
loadPartitions(String collectionName, List<String> partitionNames) - 从内存中释放集合分区:
releasePartitions(String collectionName, List<String> partitionNames)
# 向量管理 (IVecMService)
IVecMService 接口提供向量的插入、更新、查询、删除以及相似性搜索等功能。
- 删除实体:
delete(String collectionName, String partitionName, String filter, List<Object> ids) - 根据ID获取实体:
get(String collectionName, String partitionName, List<Object> ids, List<String> outputFields) - 插入数据:
insert(String collectionName, List<JSONObject> data, String partitionName) - 根据标量过滤条件查询:
query(String collectionName, List<String> partitionNames, List<String> outputFields, List<Object> ids, String filter, ConsistencyLevel consistencyLevel, long offset, long limit) - 执行向量相似性搜索:
search(String collectionName, List<String> partitionNames, String annsField, int topK, String filter, List<String> outputFields, List<Object> data, long offset, long limit, int roundDecimal, Map<String, Object> searchParams, long guaranteeTimestamp, long gracefulTime, ConsistencyLevel consistencyLevel, boolean ignoreGrowing) - 插入或更新数据:
upsert(String collectionName, String partitionName, List<JSONObject> data)
# 公共方法
除了上述功能,MilvusService 还提供了一个公共方法来获取 MilvusClientV2 实例:
- 获取 Milvus 客户端: `getClient()