[Elastic Search] Delete (삭제)
ElasticSearch의 Delete 기능은 특정 문서를 색인에서 삭제하는 과정입니다. Delete 작업은 HTTP DELETE
요청을 통해 이루어지며, 문서를 삭제하면 해당 데이터는 더 이상 검색 결과에 나타나지 않게 됩니다.
1. 특정 문서 삭제
특정 문서를 삭제하려면 DELETE
요청을 사용하여 색인에서 문서의 ID를 기반으로 삭제할 수 있습니다.
# 예제
DELETE /my_index/_doc/1
이 요청은 my_index
색인에서 ID가 1
인 문서를 삭제합니다.
# 응답
{
"_index": "my_index",
"_id": "1",
"_version": 2,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
응답에서는 문서가 성공적으로 삭제되었음을 나타내는 "result": "deleted"
필드를 확인할 수 있습니다.
2. 색인 전체 삭제
특정 색인 내의 모든 문서를 삭제하려면 _delete_by_query
엔드포인트를 사용합니다. 이는 특정 조건에 맞는 모든 문서를 삭제하는 기능으로 매우 강력하며, 잘못 사용하면 중요한 데이터를 잃을 수 있으므로 주의해야 합니다.
2.1 특정 조건을 기반으로 삭제
아래 예제는 my_index
색인에서 user
필드가 “홍길동” 인 모든 문서를 삭제하는 요청입니다.
# 예제
POST /my_index/_delete_by_query
{
"query": {
"match": {
"user": "홍길동"
}
}
}
# 응답
{
"took": 78,
"timed_out": false,
"total": 1,
"deleted": 1,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1,
"throttled_until_millis": 0,
"failures": []
}
응답에서는 삭제된 문서의 수를 deleted
필드에서 확인할 수 있습니다.
2.2 색인의 모든 문서 삭제
색인 내의 모든 문서를 삭제하려면 match_all
쿼리를 사용합니다. 이 요청은 해당 색인에서 모든 문서를 삭제하므로, 신중히 사용해야 합니다.
# 예제
POST /my_index/_delete_by_query
{
"query": {
"match_all": {}
}
}
이 요청은 my_index
색인 내의 모든 문서를 삭제합니다.
# 응답
{
"took": 120,
"timed_out": false,
"total": 10,
"deleted": 10,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1,
"throttled_until_millis": 0,
"failures": []
}
이 응답에서는 총 10개의 문서가 삭제되었음을 deleted
필드에서 확인할 수 있습니다.
3. 색인 자체 삭제
색인 자체를 삭제하려면 DELETE
요청을 색인 이름과 함께 사용합니다. 이 작업은 색인 내의 모든 문서와 색인 자체를 완전히 제거합니다.
# 예제
DELETE /my_index
# 응답
{
"acknowledged": true
}
이 예제는 my_index
색인 삭제 요청에 대한 것으로, 응답에서의 "acknowledged": true
는 색인이 성공적으로 삭제되었음을 의미합니다.
Leave a comment