Создание разделов
Этот раздел описывает, как создавать разделы в Milvus.
Milvus позволяет разделить большинство векторных данных на небольшое количество разделов. Это позволяет ограничить поиск и другие операции только в пределах одного раздела, улучшая производительность.
Коллекция состоит из одного или нескольких разделов. При создании новой коллекции Milvus создаст раздел по умолчанию, _default
. Дополнительную информацию см. в глоссарии - Раздел.
В следующем примере создается раздел с названием novel
в коллекции book
.
err := milvusClient.CreatePartition(
context.Background(), // ctx
"book", // Название коллекции
"novel" // Название раздела
)
if err != nil {
log.Fatal("Не удалось создать раздел: ", err.Error())
}
Параметр | Описание |
---|---|
ctx |
Контекст для управления процессом вызова API. |
CollectionName |
Название коллекции, в которой нужно создать раздел. |
partitionName |
Название создаваемого раздела. |
Ограничения
Функция | Максимальное значение |
---|---|
Количество разделов в одной коллекции | 4,096 |
Проверка существования раздела
Проверка существования указанного раздела в коллекции.
hasPar, err := milvusClient.HasPartition(
context.Background(), // ctx
"book", // Название коллекции
"novel", // Название раздела
)
if err != nil {
log.Fatal("Не удалось проверить раздел: ", err.Error())
}
log.Println(hasPar)
Перечисление всех разделов
listPar, err := milvusClient.ShowPartitions(
context.Background(), // ctx
"book", // Название коллекции
)
if err != nil {
log.Fatal("Не удалось перечислить разделы: ", err.Error())
}
log.Println(listPar)
Удаление раздела
err := milvusClient.DropPartition(
context.Background(), // ctx
"book", // Название коллекции
"novel", // Название раздела
)
if err != nil {
log.Fatal("Не удалось удалить раздел: ", err.Error())
}
Загрузка раздела
Milvus позволяет пользователям загружать разделы как несколько реплик, чтобы использовать ресурсы центрального процессора и оперативную память дополнительных узлов запросов, улучшая общую пропускную способность запросов в секунду (QPS) и пропускную способность.
err := milvusClient.LoadPartitions(
context.Background(), // ctx
"book", // Название коллекции
[]string{"novel"}, // Названия разделов
false // Асинхронно
)
if err != nil {
log.Fatal("Не удалось загрузить разделы: ", err.Error())
}
Освобождение раздела
err := milvusClient.ReleasePartitions(
context.Background(), // ctx
"book", // Название коллекции
[]string{"novel"} // Названия разделов
)
if err != nil {
log.Fatal("Не удалось освободить разделы: ", err.Error())
}