一架梯子,一头程序猿,仰望星空!
Milvus向量数据库教程 > 内容正文

Go Milvus创建分区


创建分区

本主题介绍了如何在 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())
}


关联主题