diff --git a/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py b/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py index 82dd322359..cd2ceed795 100644 --- a/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py +++ b/backend/open_webui/retrieval/vector/dbs/milvus_multitenancy.py @@ -262,15 +262,23 @@ class MilvusClient(VectorDBBase): else: expr.append(f"metadata['{key}'] == {value}") - results = collection.query( + iterator = collection.query_iterator( expr=" and ".join(expr), output_fields=["id", "text", "metadata"], - limit=limit, + limit=limit if limit else -1, ) - ids = [res["id"] for res in results] - documents = [res["text"] for res in results] - metadatas = [res["metadata"] for res in results] + all_results = [] + while True: + batch = iterator.next() + if not batch: + iterator.close() + break + all_results.extend(batch) + + ids = [res["id"] for res in all_results] + documents = [res["text"] for res in all_results] + metadatas = [res["metadata"] for res in all_results] return GetResult(ids=[ids], documents=[documents], metadatas=[metadatas])