我正在尝试迭代我的集合中的所有记录,所以这是我尝试的代码:
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?
我认为 MilvusClient 目前不提供迭代器接口。但是,要获取集合的行数,您可以使用
collection.query()
而不是 MilvusClient.query()
results = collection.query(expr="", output_fields=["count(*)"])
print(results)