当前位置: 首页 > news >正文

Milvus(6):Collection 管理分区、管理别名

1 管理分区

        分区是一个 Collection 的子集。每个分区与其父集合共享相同的数据结构,但只包含集合中的一个数据子集。本页将帮助你了解如何管理分区。

1.1 分区概述

        创建一个 Collection 时,Milvus 也会在该 Collection 中创建一个名为_default 的分区。如果不添加其他分区,所有插入到 Collections 中的实体都会进入默认分区,所有搜索和查询也都在默认分区内进行。可以添加更多分区,并根据特定条件将实体插入其中。这样就可以限制在某些分区内进行搜索和查询,从而提高搜索性能。一个 Collections 最多可以有 1,024 个分区。

        Partition Key功能是基于分区的搜索优化,允许 Milvus 根据特定标量字段中的值将实体分配到不同的分区中。该功能有助于实现面向分区的多租户,并提高搜索性能。

1.2 列出分区

        创建 Collections 时,Milvus 还会在该 Collections 中创建一个名为_default 的分区。您可以按以下方式列出 Collections 中的分区。

from pymilvus import MilvusClientclient = MilvusClient(uri="http://localhost:19530",token="root:Milvus"
)res = client.list_partitions(collection_name="my_collection"
)print(res)# Output
#
# ["_default"]

1.3 创建分区

        可以向 Collection 添加更多分区,并根据特定条件向这些分区插入实体。

client.create_partition(collection_name="my_collection",partition_name="partitionA"
)res = client.list_partitions(collection_name="my_collection"
)print(res)# Output
#
# ["_default", "partitionA"]

1.4 检查特定分区

        以下代码片段演示了如何检查特定 Collections 中是否存在分区。

res = client.has_partition(collection_name="my_collection",partition_name="partitionA"
)print(res)# Output
#
# True

1.5 加载和释放分区

        可以分别加载集合中的特定分区。值得注意的是,如果集合中存在未加载的分区,则集合的加载状态会保持未加载状态。

client.load_partitions(collection_name="my_collection",partition_names=["partitionA"]
)res = client.get_load_state(collection_name="my_collection",partition_name="partitionA"
)print(res)
# Output
#
# {
#     "state": "<LoadState: Loaded>"
# }

        还可以释放特定分区。

client.release_partitions(collection_name="my_collection",partition_names=["partitionA"]
)res = client.get_load_state(collection_name="my_collection",partition_name="partitionA"
)print(res)# Output
#
# {
#     "state": "<LoadState: NotLoaded>"
# }

1.6 删除分区

        可以丢弃不再需要的分区。在丢弃分区之前,请确保该分区已被释放。

client.release_partitions(collection_name="my_collection",partition_names=["partitionA"]
)client.drop_partition(collection_name="my_collection",partition_name="partitionA"
)res = client.list_partitions(collection_name="my_collection"
)print(res)# ["_default"]

2 管理别名

2.1 别名概述

        可以为你的 Collections 创建别名。一个集合可以有多个别名,但集合不能共享一个别名。在收到针对某个 Collection 的请求时,Milvus 会根据提供的名称定位该 Collection。如果所提供名称的 Collection 不存在,Milvus 会继续定位所提供名称的别名。你可以使用 Collections 别名来调整代码,以适应不同的情况。

2.2 创建别名

        以下代码片段演示了如何为 Collection 创建别名。

from pymilvus import MilvusClientclient = MilvusClient(uri="http://localhost:19530",token="root:Milvus"
)# 9. 管理别名
# 9.1. 创建别名
client.create_alias(collection_name="my_collection_1",alias="bob"
)client.create_alias(collection_name="my_collection_1",alias="alice"
)

        以下代码片段演示了列出分配给特定 Collection 的别名的过程。

# 9.2. 别名列表
res = client.list_aliases(collection_name="my_collection_1"
)print(res)# Output
#
# {
#     "aliases": [
#         "bob",
#         "alice"
#     ],
#     "collection_name": "my_collection_1",
#     "db_name": "default"
# }

2.3 描述别名

        以下代码片段详细描述了特定别名,包括分配给该别名的 Collections 名称。

# 9.3. 描述的别名
res = client.describe_alias(alias="bob"
)print(res)# Output
#
# {
#     "alias": "bob",
#     "collection_name": "my_collection_1",
#     "db_name": "default"
# }

2.4 更改别名

        可以将已分配给特定集合的别名重新分配给另一个集合。

# 9.4 为其他集合重新分配别名
client.alter_alias(collection_name="my_collection_2",alias="alice"
)res = client.list_aliases(collection_name="my_collection_2"
)print(res)# Output
#
# {
#     "aliases": [
#         "alice"
#     ],
#     "collection_name": "my_collection_2",
#     "db_name": "default"
# }res = client.list_aliases(collection_name="my_collection_1"
)print(res)# Output
#
# {
#     "aliases": [
#         "bob"
#     ],
#     "collection_name": "my_collection_1",
#     "db_name": "default"
# }

2.5 删除别名

        下面的代码片段演示了删除别名的过程。

# 9.5 删除别名
client.drop_alias(alias="bob"
)client.drop_alias(alias="alice"
)

相关文章:

  • 运维打铁:Centos 7 使用yum安装 mysql5.7
  • Rust 学习笔记:编程语言的相关概念
  • HTML、XHTML 和 XML区别
  • 关于Safari浏览器在ios<16.3版本不支持正则表达式零宽断言的解决办法
  • HTML给图片居中
  • 【OSG学习笔记】Day 7: 材质与光照——让模型“活”起来
  • 数据库-数据类型、约束 和 DQL语言
  • 内网数据库怎么通过外网访问?本地SQL无公网IP如何让公网连接实现通用方法
  • 【ES实战】Elasticsearch中模糊匹配类的查询
  • 【mysql】windows mysql命令
  • Redis 基础和高级用法入门
  • 【TensorFlow深度学习框架】从数学原理到工业级应用
  • 国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
  • w~视觉~合集3
  • CV和NLP领域常见模型列表
  • PH热榜 | 2025-04-24
  • elementui日历显示红点及根据日程范围判断是否有红点
  • OSPF动态路由(单臂路由)
  • vue3+element-push 实现input框粘贴图片或文本,图片上传。
  • 2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
  • 《深化养老服务改革发展的大湾区探索》新书将于今年6月出版
  • 李家超称香港将部署为内地企业提供供应链服务,突破美国封锁
  • 台媒称美派遣前军官出任“汉光演习”资深观察员,国防部回应
  • 继续免费通行!五一假期全国高速公路日均流量约6200万辆
  • 2025年超长期特别国债24日首次发行
  • 特朗普激发加拿大爱国热情之下:大选提前投票人数创纪录,魁北克分离情绪被冲淡