在Milvus中管理Collections

Milvus中的Collections类似于关系型数据库中的“表”,是组织和管理向量数据以及相关标量元数据的核心单元。通过灵活配置索引、分区和分片,您能够根据实际需求定制化数据处理流程,实现从数据摄入、存储、查询到分析的全链路解决方案。

前提条件

  • 已在本地客户端成功安装了PyMilvus库,并将其更新至当前最新版本。

    如果您尚未在本地客户端安装PyMilvus库,或者需要将其更新至当前最新版本,您可以执行以下命令。

    pip install --upgrade pymilvus
  • 已创建Milvus实例,请参见详情快速创建Milvus实例

创建Collection

快速创建Collection

自定义创建Collection

您可以通过指定Collection的名称和向量维度来快速创建Collection。

from pymilvus import MilvusClient

# 创建Milvus Client。
client = MilvusClient(
    uri="http://c-xxxx.milvus.aliyuncs.com:19530",  # Milvus实例的公网地址。
    token="<yourUsername>:<yourPassword>",  # 登录Milvus实例的用户名和密码。
    db_name="default"  # 待连接的数据库名称,本文示例为默认的default。
)

# 创建名称为milvus_collection的Collection。
client.create_collection(
    collection_name="milvus_collection",
    dimension=5
)

res = client.get_load_state(
    collection_name="milvus_collection"
)
# 返回Collection当前的加载状态。
print(res)

运行此代码可创建一个仅含有两个字段“id”(主键)和“vector”(向量字段)的Collection,同时默认启用“auto_id”和“enable_dynamic_field”属性。

  • auto_id: 当启用此属性后,系统将自动为每条记录分配一个自增的主键值,无需手动设置主键。

  • enable_dynamic_field: 启用此属性后,除已定义的“id”和“vector”字段外,其他任意新字段都会被视为动态字段,并以键值对形式存储于名为$meta的特殊字段中。这一特性允许插入尚未定义的新字段。

通过上述设置,可以在不预先定义所有字段的情况下,灵活地插入和管理数据。

查看Collection

  • 查看Collection明细。

    res = client.describe_collection(collection_name="milvus_collection")
    
    print(res)
    
  • 查看当前Database下的所有Collections。

    res = client.list_collections()
    
    print(res)
    

加载和卸载Collection

在对Collection进行加载操作时,Milvus会同步将该Collection关联的索引文件载入内存。反之,当执行Collection的卸载操作时,Milvus会将其索引文件从内存中移除。为了确保搜索操作的正常进行,您必须确保在对Collection进行检索时,该Collection已处于加载状态。

加载Collection

client.load_collection(
    collection_name="milvus_collection"
)

res = client.get_load_state(
    collection_name="milvus_collection"
)

print(res)

卸载Collection

client.release_collection(
    collection_name="milvus_collection"
)

res = client.get_load_state(
    collection_name="milvus_collection"
)

print(res)

删除Collection

client.drop_collection(
    collection_name="milvus_collection"
)

client.drop_collection(
    collection_name="milvus_collection1"
)
### Milvus 向量数据库概述 Milvus 是一款专门用于处理大规模向量相似度搜索的开源数据库[^1]。其设计旨在加速机器学习应用中的特征向量匹配过程,支持多种距离度量方式以及高效的索引结构。 对于希望利用 AI 技术构建复杂查询系统的开发者而言,Milvus 提供了一个强大的工具集来管理和优化高维空间内的数据检索操作。通过集成最新的硬件加速技术,如 GPU 和 FPGA 支持,Milvus 能够显著提高查询性能并降低延迟。 ### 安装与配置 要开始使用 Milvus,可以通过 Docker 或者 Kubernetes 部署官方镜像文件来进行快速安装: #### 使用Docker部署 ```bash docker pull milvusdb/milvus:v2.0-cpu-d080921-5e529c docker run -d --name milvus_cpu -p 19530:19530 -v /path/to/configs:/etc/milvus/conf \ -v /path/to/logs:/var/log/milvus \ milvusdb/milvus:v2.0-cpu-d080921-5e529c ``` 上述命令将会启动一个基于 CPU 的单节点实例,并映射必要的端口和服务路径。 ### Python SDK 连接示例 为了简化应用程序开发流程,Milvus 提供了丰富的客户端库,其中包括易于使用的 Python API 接口。下面是一个简单的例子展示如何连接到本地运行的服务并执行基本的操作: ```python from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection connections.connect("default", host="localhost", port="19530") fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True), FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128) ] schema = CollectionSchema(fields) collection_name = "example_collection" if collection_name not in list_collections(): collection = Collection( name=collection_name, schema=schema ) else: collection = Collection(name=collection_name) data = [[i for i in range(10)], [[float(j) for j in range(128)] for _ in range(10)]] mr = collection.insert(data) print(f"Number of entities inserted: {len(mr.primary_keys)}") ``` 这段代码展示了创建一个新的集合(Collection),定义字段模式,插入测试数据的过程。 ### LLM 基本概念及其影响 当涉及到具体的应用场景时,了解一些关于有界一致性的基础知识是非常重要的。默认情况下,如果没有特别指定 `GuaranteeTs` 参数,则系统会自动将其设置为当前的时间戳,这有助于确保读取的数据是最新的状态之一[^3]。 此外,在实际项目中经常需要与其他组件协同工作以实现更复杂的业务逻辑。例如,LlamaIndex 可作为前端搜索引擎负责初步筛选候选文档;而后续则由 Milvus 执行精确的语义级对比分析,从而共同完成高效的信息检索任务[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值