跳到主要内容

flush()

Near Deprecation

此操作会封存 Collection 中的所有 Segment。此操作之后的任何插入都会生成一个新的 Segment。

请求语法​

python
flush(
timeout: float | None
)
Note

我可以在每次插入数据后都调用 flush() 吗?

插入新数据时,数据会被写入一个增长中的 Segment。一旦增长中的 Segment 达到其大小上限,Zilliz Cloud 就会自动封存该 Segment。

持续调用此操作会产生许多体积较小的已封存 Segment,这会逐渐降低搜索性能。

建议您在执行任何搜索之前,先等待 Zilliz Cloud 封存所有 Segment。

参数:

  • 参数:

  • timeout (float | None)

    此操作的超时时长。将其设置为 None 表示当收到任意响应或发生任意错误时,此操作即超时。

返回类型:

NoneType

返回值:

None

异常:

  • MilvusException

    此操作期间发生任何错误时,都会引发此异常。

示例​

python
from pymilvus import Collection, CollectionSchema, FieldSchema, DataType

schema = CollectionSchema([
FieldSchema("id", DataType.INT64, is_primary=True),
FieldSchema("vector", DataType.FLOAT_VECTOR, dim=5)
])

# Create a collection
collection = Collection(
name="test_collection",
schema=schema
)

# Insert some data
collection.insert(
data=[
[0,1,2,3,4], # id
[ # vector
[0.1,0.2,-0.3,-0.4,0.5],
[0.3,-0.1,-0.2,-0.6,0.7],
[-0.6,-0.3,0.2,0.8,0.7],
[0.6,0.2,-0.3,-0.8,0.5],
[0.3,0.1,-0.2,-0.6,-0.7],
],
]
)

# Flush the data
collection.flush()

# Check the number of flushed entities in the collection
collection.num_entities # 5

以下操作与 flush() 相关:

最低 SDK 版本Inherit