有时我看到人们在代码中使用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()
我看到过这个超时。 我尝试不刷新,但无法立即找到数据。
我想立即查看我的数据并能够查询它。我也想要尽快。
你不需要调用flush()。事实上,我们强烈建议用户不要手动调用flush()接口。 Milvus 内部自动刷新数据。
以下工作流程是很好的做法:
create_collection() ----> insert() ---> ..... ---> insert() ---> create_index() ----> load() ---> search() ---> ... ---> 搜索()
参见:https://milvus.io/docs/index-vector-fields.md?tab=floating