管理集合
本指南将指导您如何使用您选择的 SDK 创建和管理集合。
开始之前
-
您已安装了Milvus 独立版或Milvus 集群版。
概述
在 Milvus 中,您将向集合中存储您的向量嵌入。集合中的所有向量嵌入共享相同的维度和用于测量相似性的距离度量标准。
Milvus 集合支持动态字段(即,在模式中未预定义的字段)和主键的自动增加。
为了满足不同的偏好,Milvus 提供了两种创建集合的方法。一种提供快速设置,另一种允许详细定制集合模式和索引参数。
此外,您可以在必要时查看、加载、释放和删除集合。
创建集合
您可以通过以下任一方式创建集合:
-
快速设置
通过此方式,您只需为集合指定名称和要存储在该集合中的向量嵌入的维度即可创建集合。有关详细信息,请参阅快速设置。
-
自定义设置
您可以自行确定集合 的__模式__和__索引参数__,而不是让 Milvus 几乎为您的集合决定一切。有关详细信息,请参阅自定义设置。
快速设置
在人工智能行业的飞速发展背景下,大多数开发人员只需一个简单而动态的集合即可开始。Milvus 允许快速设置这样一个集合,只需三个参数即可:
-
要创建的集合名称,
-
要插入的向量嵌入的维度,以及
-
用于测量向量嵌入之间相似性的度量类型。
要进行快速设置,请使用MilvusClient
类的create_collection()
方法来创建具有指定名称和维度的集合。
要进行快速设置,请使用MilvusClientV2
类的createCollection()
方法来创建具有指定名称和维度的集合。
从[`MilvusClient`](https://milvus.io/api-reference/node/v2.4.x/Client/MilvusClient.md)类的[`createCollection()`](https://milvus.io/api-reference/node/v2.4.x/Collections/createCollection.md)方法快速设置,创建指定名称和维度的集合。
from pymilvus import MilvusClient, DataType
# 1. 设置 Milvus 客户端
client = MilvusClient(
uri="http://localhost:19530"
)
# 2. 在快速设置模式下创建集合
client.create_collection(
collection_name="quick_setup",
dimension=5
)
res = client.get_load_state(
collection_name="quick_setup"
)
print(res)
# 输出
#
# {
# "state": "<LoadState: Loaded>"
# }
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
String CLUSTER_ENDPOINT = "http://localhost:19530";
// 1. 连接到 Milvus 服务器
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
// 2. 在快速设置模式下创建集合
CreateCollectionReq quickSetupReq = CreateCollectionReq.builder()
.collectionName("quick_setup")
.dimension(5)
.build();
client.createCollection(quickSetupReq);
// Thread.sleep(5000);
GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("quick_setup")
.build();
Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);
// 输出:
// true
address = "http://localhost:19530"
// 1. 设置 Milvus 客户端
client = new MilvusClient({address});
// 2. 在快速设置模式下创建集合
let res = await client.createCollection({
collection_name: "quick_setup",
dimension: 5,
});
console.log(res.error_code)
// 输出
//
// Success
//
res = await client.getLoadState({
collection_name: "quick_setup"
})
console.log(res.state)
// 输出
//
// LoadStateLoaded
//
以上代码生成的集合仅包含两个字段:id
(作为主键)和vector
(作为向量字段),默认启用auto_id
和enable_dynamic_field
设置。
-
auto_id
启用此设置可确保主键自动递增。在数据插入期间无需手动提供主键。
-
enable_dynamic_field
启用后,要插入的数据中除
id
和vector
之外的所有字段都被视为动态字段。这些额外字段保存在名为$meta
的特殊字段中的键值对中。此功能允许在数据插入期间包含额外字段。
自动索引并加载的集合已经准备好立即插入数据。
自定义设置
您可以自行确定集合的 模式 和 索引参数,而不是让 Milvus 几乎决定一切。