Tạo Phân vùng

Chủ đề này mô tả cách tạo phân vùng trong Milvus.

Milvus cho phép phân chia hầu hết dữ liệu vector thành một số phân vùng nhỏ. Điều này giúp hạn chế tìm kiếm và các hoạt động khác chỉ trong một phân vùng, tăng hiệu suất.

Một bộ sưu tập bao gồm một hoặc nhiều phân vùng. Khi tạo một bộ sưu tập mới, Milvus sẽ tạo một phân vùng mặc định, _default. Để biết thêm thông tin, xem từ ngữ - Phân vùng.

Ví dụ sau tạo một phân vùng có tên novel trong bộ sưu tập book.

err := milvusClient.CreatePartition(
  context.Background(),   // ctx
  "book",                 // CollectionName
  "novel"                 // partitionName
)
if err != nil {
  log.Fatal("Failed to create partition: ", err.Error())
}
Tham số Mô tả
ctx Ngữ cảnh để kiểm soát quá trình gọi API.
CollectionName Tên của bộ sưu tập trong đó tạo phân vùng.
partitionName Tên của phân vùng cần tạo.

Giới Hạn

Tính năng Giới hạn tối đa
Số lượng phân vùng trong một bộ sưu tập duy nhất 4,096

Xác minh Sự Tồn Tại của Một Phân vùng

Xác minh xem một phân vùng cụ thể có tồn tại trong một bộ sưu tập hay không.

hasPar, err := milvusClient.HasPartition(
   context.Background(),   // ctx
   "book",                 // CollectionName
   "novel",                // partitionName
)
if err != nil {
   log.Fatal("Failed to check partition: ", err.Error())
}
log.Println(hasPar)

Liệt kê Tất Cả Các Phân Vùng

listPar, err := milvusClient.ShowPartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
)
if err != nil {
  log.Fatal("Failed to list partitions: ", err.Error())
}
log.Println(listPar)

Xóa Một Phân Vùng

err := milvusClient.DropPartition(
  context.Background(),   // ctx
  "book",                 // CollectionName
  "novel",                // partitionName
)
if err != nil {
  log.Fatal("Failed to delete partition: ", err.Error())
}

Tải Một Phân Vùng

Milvus cho phép người dùng tải các phân vùng dưới dạng nhiều bản sao để tận dụng tài nguyên CPU và bộ nhớ của các nút truy vấn bổ sung, nâng cao tổng QPS và thông lượng.

err := milvusClient.LoadPartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
  []string{"novel"},      // partitionNames
  false                   // async
)
if err != nil {
  log.Fatal("Failed to load partitions: ", err.Error())
}

Giải Phóng Một Phân Vùng

err := milvusClient.ReleasePartitions(
  context.Background(),   // ctx
  "book",                 // CollectionName
  []string{"novel"}       // partitionNames
)
if err != nil {
  log.Fatal("Failed to release partitions: ", err.Error())
}