You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需重复连接Milvus Collection,实现记录遍历与计数

无需重复连接获取Milvus集合总记录数的方案

不需要分别通过Collection和MilvusClient建立两次连接,直接用你已创建的source_collection对象就能获取总记录数,以下是两种可行方式:

方式1:使用num_entities属性(Milvus 2.x及以上版本)

直接访问集合对象的num_entities属性即可得到实时的总记录数,结合你的遍历代码修改如下:

source_collection = Collection(source["collection"], using="source")

# 获取集合总记录数
total_records = source_collection.num_entities
print(f"总记录数:{total_records}")

# 初始化遍历迭代器
iterator = source_collection.query_iterator(
    batch_size=10,
    output_fields=["*"],
)

processed = 0
while True:
    result = iterator.next()
    if not result:
        iterator.close()
        break
    # 处理单批数据
    <do something>
    # 更新进度
    processed += len(result)
    print(f"已处理 {processed}/{total_records} 条")

方式2:使用count()方法

部分Milvus版本也支持通过count()方法获取总数,代码更简洁:

total_records = source_collection.count()

注意事项

  • 两种方式都基于已有的Collection连接,无需额外创建MilvusClient实例,避免了重复连接的资源开销。
  • num_entities是实时统计的集合实体数量,能准确反映当前集合的记录总数,适合用于进度跟踪。

内容的提问来源于stack exchange,提问作者Trevor Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 23:59:53