我什么时候应该使用flush和load来创建新集合?

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

有时我看到人们在代码中使用flush(),有时是现在。 我也看到过当时使用过负载。

我什么时候应该使用flush()和load()来创建新集合?

collection = Collection("NewCollection", schema, consistency_level="Strong") 
collection.create_partition(partition_name=self.partition_name) 
sparse_index = {"index_type": "SPARSE_INVERTED_INDEX", "metric_type": "IP"}
collection.create_index("sparse_vector", sparse_index)
dense_index = {"index_type": "AUTOINDEX", "metric_type": "IP"}
collection.create_index("dense_vector", dense_index)

现在,我需要以下两份声明吗?

collection.flush()
collection.load()

或者只有当我向集合中插入新实体时才需要它们?

for i in range(0, len(docs), batch_size):
    batched_entities = [
        docs[i: i + batch_size],sparse_embeddings[i: i + batch_size],
            dense_embeddings[i: i + batch_size],]

collection.insert(batched_entities)
collection.flush()
collection.load()

我看到过这个超时。 我尝试不刷新,但无法立即找到数据。

我想立即查看我的数据并能够查询它。我也想要尽快。

milvus
1个回答
0
投票

你不需要调用flush()。事实上,我们强烈建议用户不要手动调用flush()接口。 Milvus 内部自动刷新数据。

以下工作流程是很好的做法:

create_collection() ----> insert() ---> ..... ---> insert() ---> create_index() ----> load() ---> search() ---> ... ---> 搜索()

参见:https://milvus.io/docs/index-vector-fields.md?tab=floating

© www.soinside.com 2019 - 2024. All rights reserved.