エンティティの削除
フィルタリング条件や主キーによって不要になったエンティティを削除できます。
フィルタ条件によるエンティティの削除
属性を共有する複数のエンティティを一括削除する場合は、フィルタ式を使用できます。以下のコード例では、in演算子を使用して、colorフィールドの値がredとgreen に設定されているエンティティを一括削除しています。他の演算子を使用して、要件に合ったフィルタ式を作成することもできます。フィルタ式の詳細については、メタデータ・フィルタリングを参照してください。
from pymilvus import MilvusClient
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
res = client.delete(
collection_name="quick_setup",
# highlight-next-line
filter="color in ['red_3314', 'purple_7392']"
)
print(res)
# Output
# {'delete_count': 2}
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.vector.request.DeleteReq;
import io.milvus.v2.service.vector.response.DeleteResp;
ilvusClientV2 client = new MilvusClientV2(ConnectConfig.builder()
.uri("http://localhost:19530")
.token("root:Milvus")
.build());
DeleteResp deleteResp = client.delete(DeleteReq.builder()
.collectionName("quick_setup")
.filter("color in ['red_3314', 'purple_7392']")
.build());
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
// 7. Delete entities
res = await client.delete({
collection_name: "quick_setup",
// highlight-next-line
filter: "color in ['red', 'green']"
})
console.log(res.delete_cnt)
// Output
//
// 3
//
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/entities/delete" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"filter": "color in [\"red_3314\", \"purple_7392\"]"
}'
主キーによるエンティティの削除
ほとんどの場合、主キーはエンティティを一意に識別します。削除リクエストに主キーを設定することで、Entity を削除できます。以下のコード例は、主キー18と19 を持つ 2 つのエンティティを削除する方法を示している。
res = client.delete(
collection_name="quick_setup",
# highlight-next-line
ids=[18, 19]
)
print(res)
# Output
# {'delete_count': 2}
import io.milvus.v2.service.vector.request.DeleteReq;
import io.milvus.v2.service.vector.response.DeleteResp;
import java.util.Arrays;
DeleteResp deleteResp = client.delete(DeleteReq.builder()
.collectionName("quick_setup")
.ids(Arrays.asList(18, 19))
.build());
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
res = await client.delete({
collection_name: "quick_setup",
ids: [18, 19]
})
console.log(res.delete_cnt)
// Output
//
// 2
//
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/entities/delete" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"filter": "id in [18, 19]"
}'
## {"code":0,"cost":0,"data":{}}
パーティションからのエンティティの削除
特定のパーティションに格納されているエンティティを削除することもできます。以下のコード・スニペットは、コレクションにPartitionAというパーティションがあると仮定しています。
res = client.delete(
collection_name="quick_setup",
ids=[18, 19],
partition_name="partitionA"
)
print(res)
# Output
# {'delete_count': 2}
import io.milvus.v2.service.vector.request.DeleteReq;
import io.milvus.v2.service.vector.response.DeleteResp;
import java.util.Arrays;
DeleteResp deleteResp = client.delete(DeleteReq.builder()
.collectionName("quick_setup")
.ids(Arrays.asList(18, 19))
.partitionName("partitionA")
.build());
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
res = await client.delete({
collection_name: "quick_setup",
ids: [18, 19],
partition_name: "partitionA"
})
console.log(res.delete_cnt)
// Output
//
// 2
//
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/entities/delete" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"partitionName": "partitionA",
"filter": "id in [18, 19]"
}'
# {
# "code": 0,
# "cost": 0,
# "data": {}
# }