python 如何使用Qdrant将集合从一个示例复制到另一个示例?

ev7lccsx  于 11个月前  发布在  Python
关注(0)|答案(2)|浏览(188)

在我正在运行的进程中,我需要非常低的延迟才能处理作业,因此我使用了一个qdrant db的本地示例,以便能够非常快速地将所有内容插入其中。
完成作业后,我想将整个集合从本地示例复制到Qdrant的云示例。
我只是想知道,除了简单地滚动整个集合并将其插入到另一个示例之外,是否还有更好的方法来做到这一点。

bvpmtnay

bvpmtnay1#

由于在本地(内存中或持久化)和Qdrant的服务器示例之间没有任何其他联系点,因此滚动本地集合以上传点应该是适当的操作过程。

6vl6ewon

6vl6ewon2#

我可以用client.migrate方法解决这个问题,如下所示:

cloud_client = QdrantClient(
            url = qdrant_url,
            api_key = key)

cloud_client.recreate_collection(
        collection_name=collection_name,
        vectors_config=VectorParams(size=2048, distance=Distance.COSINE,on_disk = True)
    )

local_client = QdrantClient("localhost",port=6333)

local_client.migrate(cloud_client,[collection_name],batch_size = 100,recreate_on_collision=True)

字符串
对于较大的批次,它失败了。此外,查看代码,它似乎只是实现了在每个项目上滚动,正如@Anush建议的那样:
https://github.com/qdrant/qdrant-client/blob/6d019e67a133bea87a96bce388f5b901cdae1287/qdrant_client/migrate/migrate.py#L104

相关问题