无需双连接迭代统计 Milvus 集合中的记录

问题描述 投票:0回答:1

我正在尝试迭代我的集合中的所有记录,所以这是我尝试的代码:

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

iterator = source_collection.query_iterator(
    batch_size=10,
    output_fields=["*"],
)

while True:
    result = iterator.next()
    <do something>
    if not result:
        iterator.close()
        break

然后我想在开始迭代之前检索我的集合中的记录总数,以便它可以帮助我跟踪我的进度。我相信我需要使用 MilvusClient 来帮助我,如以下代码:

source_client = MilvusClient(uri=target["endpoint"], token=target["token"])
response = source_client.query(
    collection_name=source["collection"], output_fields=["count(*)"]
)

我想知道是否有一种方法可以避免连接两次,一次使用 Connection,一次使用 MilvusClient?

collections client vector-database milvus
1个回答
0
投票

我认为 MilvusClient 目前不提供迭代器接口。但是,要获取集合的行数,您可以使用

collection.query()
而不是
MilvusClient.query()

results = collection.query(expr="", output_fields=["count(*)"])
print(results)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.