'Delete API'에 해당되는 글 1건

  1. 2015/05/20 용비 07. Delete API

07. Delete API

Elastic Search/03. APIs 2015/05/20 08:56 용비

Delete API id 가지고 특정 index에서 JSON document 삭제한다. 다음 예제는 twitter index, tweet type, id 값이 1 JSON document 삭제하는 것을 보여준다.


$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1'


delete operation 결과는 다음과 같다.


{
  
"found" : true,
  
"_index" : "twitter",
  
"_type" : "tweet",
  
"_id" : "1",
  
"_version" : 2
}


Versioning


Index document version이 붙여진다. Document 삭제할 , version 지우려고 하는 document 실제로 지우려고 하는 것으로 적절한지 삭제하는 동안 변경되지 않는지 확신할 있게 한다. Delete 포함하여 Document  write operation 매번 실행될 때마다 버전이 증가한다.


Routing


Routing 제어하기 위해 indexing 사용할 , document 삭제하기 위해서 routing value 제공되어야만 한다. 예를 들면 다음과 같다.


$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1?routing=kimchy'


위의 결과는 id 1 document 삭제할 것이다. 하지만 사용자 기반으로 route 것이다. 정확한 route없이 삭제하는 경우 document 삭제되지 않을 수도 있다.


많은 경우에 routing value document 삭제할 주어지지 않는다. 그러한 경우에서는 _routing required 맵핑되었지만 routing 없으면 전체 shard 있는 값들을 자동으로 삭제할 것이다.


Parent


Parent parameter 설정되면, routing parameter 설정되는 것과 기본적으로 동일하다. Parent document 삭제하는 것은 자식까지 자동으로 삭제하지는 않음에 유의하라. 주어진 id 해당하는 parent 모든 자식 document 삭제하는 한가지 방법은 자동으로 생성되고 index field _parent child index 삭제하는 쿼리 (https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html) 수행하는 것이다. 형식은 parent_type#parent_id이다.


Automatic index creation


Delete operation 이전에 생성되지 않았으면 자동으로 index 생성한다. (수동으로 index 생성하는 index API 확인하라). 그리고 이전에 생성되지 않았다면, 자동으로 특정 type 대해 맵핑되는 type 동적으로 생성한다. (mapping type 수동으로 생성하는 put mapping AP?I 대해서 확인하라.)


Distributed


Delete operation hash값으로 해당 shard id 얻는다. 그리고 id group내의 primary shard redirect 되고, id group 속한 shard replica (필요하다면) 복제된다.


Replication Type


[WARNING]

1.5.0에서 deprecated.

Async replication 지정하는 것은 deprecate되었고, 버전 2.0.0에서는 삭제될 것이다.


Operation 복제 (replication) async 방식으로 replica 처리될 있다. (operation primary shard 수행되고 리턴될 것이다.) replication parameter async 설정될 있다. (기본값은 sync이다.)


Write Consistency


Partition (replication group) 에서 Operation active shard 수에 근거하여 실행되도록 허용된다면 통제하라. 값은 one, quorum, all이 있다. Consistency parameter node level 설정에서 기본적으로 action.write_consistency quorum으로 설정되어 있다.


예를 들면, 2개의 replica index 가지는 N개의 shard 있다면, operation 성공하기 위해서는 적합한 partition (quorum)내에 최소한 2개의 active shard 있어야만 것이다. 1개의 replica 가지는 N개의 shard 있는 시나리오에서는 하나의 shard active 있어야 한다. ( 경우에는 one quorum 같다.)


Refresh


Refresh parameter 적합한 primary refresh하고 delete operation 일어난 이후 replica shard 통해 검색할 있도록 true 설정될 있다. True 설정하는 것은 시스템에 과부하를 주지 않을 것이라는 주의 깊은 생각과 확신 하에 이루어져야 한다. (indexing하는데 느려질 수도 있다.)


Timeout


Delete operation 수행하도록 할당된 primary shard delete operation 수행되는 동안에는 이용할 없다. 몇가지 이유로 primary shard gateway로부터 즉시 복구되거나 재배치를 겪는다. 기본적으로 delete operation primary shard 이용가능해질 때까지 1분을 기다릴 것이다. 이후에는 요청이 실패하고 error로 응답한다. Timeout parameter 얼마나 오래 기다릴지 명시적으로 지정하는데 사용할 있다. 다음 예제에서는 timeout값을 5분으로 설정했다.


$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1?timeout=5m'

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/729