functions.py 956 B

1234567891011121314151617181920212223242526272829303132333435
  1. import asyncio
  2. from typing import Dict, List
  3. import pymilvus
  4. async def async_insert_chunk(collection: pymilvus.Collection, data: Dict) -> List[int]:
  5. """
  6. :param collection:
  7. :param data: insert data
  8. :return:
  9. """
  10. result = await asyncio.to_thread(collection.insert, [data])
  11. return result.primary_keys
  12. async def async_delete_chunk(collection: pymilvus.Collection, ids: List[int]) -> List[int]:
  13. """
  14. Delete entities by ids from a Milvus collection asynchronously.
  15. :param collection: Milvus Collection object
  16. :param ids: List of primary key ids to delete
  17. :return: List of successfully deleted ids
  18. """
  19. if not ids:
  20. return []
  21. expr = f"id in {ids}"
  22. result = await asyncio.to_thread(collection.delete, expr)
  23. await asyncio.to_thread(collection.flush)
  24. success_count = result.succ_count
  25. if success_count == len(ids):
  26. return ids
  27. else:
  28. return ids[:success_count]