Supprimer des entités
Vous pouvez supprimer les entités qui ne sont plus nécessaires en fonction des conditions de filtrage ou de leurs clés primaires.
Suppression d'entités par conditions de filtrage
Lorsque vous supprimez plusieurs entités qui partagent certains attributs dans un lot, vous pouvez utiliser des expressions de filtrage. L'exemple de code ci-dessous utilise l'opérateur in pour supprimer en bloc toutes les entités dont le champ couleur est défini sur les valeurs rouge et violet. Vous pouvez également utiliser d'autres opérateurs pour construire des expressions de filtre qui répondent à vos besoins. Pour plus d'informations sur les expressions de filtrage, veuillez vous reporter à la section Le filtrage expliqué.
from pymilvus import MilvusClient
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
res = client.delete(
collection_name="quick_setup",
filter="color in ['red_7025', 'purple_4976]"
)
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_7025', 'purple_4976]")
.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",
filter: "color in ['red_7025', 'purple_4976]"
})
console.log(res.delete_cnt)
// Output
//
// 3
//
import (
"context"
"fmt"
"github.com/milvus-io/milvus/client/v2/column"
"github.com/milvus-io/milvus/client/v2/entity"
"github.com/milvus-io/milvus/client/v2/milvusclient"
)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
milvusAddr := "localhost:19530"
client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: milvusAddr,
})
if err != nil {
fmt.Println(err.Error())
// handle error
}
defer client.Close(ctx)
_, err = client.Delete(ctx, milvusclient.NewDeleteOption("quick_setup").WithExpr("color in ['red_7025', 'purple_4976']"))
if err != nil {
fmt.Println(err.Error())
// handle err
}
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_7025\", \"purple_4976\"]"
}'
Supprimer des entités par clé primaire
Dans la plupart des cas, une clé primaire identifie de manière unique une entité. Vous pouvez supprimer des entités en définissant leurs clés primaires dans la requête de suppression. L'exemple de code ci-dessous montre comment supprimer deux entités avec les clés primaires 18 et 19.
res = client.delete(
collection_name="quick_setup",
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
//
_, err = client.Delete(ctx, milvusclient.NewDeleteOption("quick_setup").
WithInt64IDs("id", []int64{18, 19}))
if err != nil {
fmt.Println(err.Error())
// handle err
}
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":{}}
Supprimer des entités de partitions
Vous pouvez également supprimer des entités stockées dans des partitions spécifiques. Les extraits de code suivants supposent que vous avez une partition nommée PartitionA dans votre collection.
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
//
_, err = client.Delete(ctx, milvusclient.NewDeleteOption("quick_setup").
WithInt64IDs("id", []int64{18, 19}).
WithPartition("partitionA"))
if err != nil {
fmt.Println(err.Error())
// handle err
}
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": {}
# }