创建分区
本主题介绍了如何在 Milvus 中创建分区。
Milvus 允许将向量数据的大部分内容分割为少量分区。这样,搜索和其他操作就可以限制在一个分区内,以提高性能。
一个集合由一个或多个分区组成。在创建新集合的同时,Milvus 会创建一个默认分区 _default
。有关更多信息,请参见术语表-分区。
以下示例在集合 book
中创建了一个名为 novel
的分区。
err := milvusClient.CreatePartition(
context.Background(), // ctx
"book", // CollectionName
"novel" // partitionName
)
if err != nil {
log.Fatal("创建分区失败:", err.Error())
}
参数 | 说明 |
---|---|
ctx |
用于控制 API 调用过程的上下文。 |
CollectionName |
要在其中创建分区的集合的名称。 |
partitionName |
要创建的分区的名称。 |
限制
功能 | 最大限制 |
---|---|
单个集合中的分区数 | 4,096 |
验证分区是否存在
验证指定集合中是否存在分区。
hasPar, err := milvusClient.HasPartition(
context.Background(), // ctx
"book", // CollectionName
"novel", // partitionName
)
if err != nil {
log.Fatal("检查分区失败:", err.Error())
}
log.Println(hasPar)
列出所有分区
listPar, err := milvusClient.ShowPartitions(
context.Background(), // ctx
"book", // CollectionName
)
if err != nil {
log.Fatal("列出分区失败:", err.Error())
}
log.Println(listPar)
删除分区
err := milvusClient.DropPartition(
context.Background(), // ctx
"book", // CollectionName
"novel", // partitionName
)
if err != nil {
log.Fatal("删除分区失败:", err.Error())
}
加载分区
Milvus 允许用户将分区加载为多个副本,以利用额外查询节点的 CPU 和内存资源。可提高整体 QPS 和吞吐量。
err := milvusClient.LoadPartitions(
context.Background(), // ctx
"book", // CollectionName
[]string{"novel"}, // partitionNames
false // async
)
if err != nil {
log.Fatal("加载分区失败:", err.Error())
}
释放分区
err := milvusClient.ReleasePartitions(
context.Background(), // ctx
"book", // CollectionName
[]string{"novel"} // partitionNames
)
if err != nil {
log.Fatal("释放分区失败:", err.Error())
}