Delete Entities
This topic describes how to delete entities in Milvus.
Milvus supports deleting entities by primary key or complex boolean expressions. Deleting entities by primary key is much faster and lighter than deleting them by complex boolean expressions. This is because Milvus executes queries first when deleting data by complex boolean expressions.
- Deleted entities can still be retrieved immediately after the deletion if the consistency level is set lower than
Strong
. - Entities deleted beyond the pre-specified span of time for Time Travel cannot be retrieved again.
- Frequent deletion operations will impact the system performance.
- Before deleting entities by comlpex boolean expressions, make sure the collection has been loaded.
- Deleting entities by complex boolean expressions is not an atomic operation. Therefore, if it fails halfway through, some data may still be deleted.
- Deleting entities by complex boolean expressions is supported only when the consistency is set to Bounded. For details, see Consistency.
When interacting with Milvus using Python code, you have the flexibility to choose between PyMilvus and MilvusClient (new). For more information, refer to Python SDK.
Prepare boolean expression
Prepare the boolean expression that filters the entities to delete.
Milvus supports deleting entities by primary key or complex boolean expressions. For more information on expression rules and supported operators, see Boolean Expression Rules.
Simple boolean expression
Use a simple expression to filter data with primary key values of 0
and 1
:
expr = "book_id in [0,1]"
const expr = "book_id in [0,1]";
expr := "book_id in [0,1]"
private static final String DELETE_EXPR = "book_id in [0,1]";
# See the following section.
Option | Description |
---|---|
-c | The name of the collection. |
-p (Optional) | The name of the partition that the entities belong to. |
Complex boolean expression
To filter entities that meet specific conditions, define complex boolean expressions.
Filter entities whose word_count
is greater than or equal to 11000
:
expr = "word_count >= 11000"
expr := "word_count >= 11000"
Filter entities whose book_name
is not Unknown
:
expr = "book_name != Unknown"
expr := "book_name != Unknown"
Filter entities whose primary key values are greater than 5
and word_count
is smaller than or equal to 9999
:
expr = "book_id > 5 && word_count <= 9999"
expr := "book_id > 5 && word_count <= 9999"
Delete entities
Delete the entities with the boolean expression you created. Milvus returns the ID list of the deleted entities.
from pymilvus import Collection
collection = Collection("book") # Get an existing collection.
collection.delete(expr)
await milvusClient.deleteEntities({
collection_name: "book",
expr: expr,
});
err = milvusClient.Delete(
context.Background(), // ctx
"book", // collection name
"", // partition name
expr, // expr
)
if err != nil {
log.Fatal("failed to delete:", err.Error())
}
milvusClient.delete(
DeleteParam.newBuilder()
.withCollectionName("book")
.withExpr(DELETE_EXPR)
.build()
);
curl -X 'POST' \
'${MILVUS_HOST}:${MILVUS_PORT}/v1/vector/delete' \
-H 'Authorization: Bearer ${TOKEN}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"collectionName": "collection1",
"id": 1
}'
{
"code": 200,
"data": {}
}
Parameter | Description |
---|---|
expr |
Boolean expression that specifies the entities to delete. |
partition_name (optional) |
Name of the partition to delete entities from. |
Parameter | Description |
---|---|
collection_name |
Name of the collection to delete entities from. |
expr |
Boolean expression that specifies the entities to delete. |
partition_name (optional) |
Name of the partition to delete entities from. |
Parameter | Description |
---|---|
CollectionName |
Name of the collection to delete entities from. |
expr |
Boolean expression that specifies the entities to delete. |
PartitionName (optional) |
Name of the partition to delete entities from. |
Parameter | Description |
---|---|
collectionName |
The name of the collection to which this operation applies. |
id |
The ID of the entity to drop. |
What’s next
- Learn more basic operations of Milvus: