[Updating Documents]

Document index하고 replace 있을 뿐만 아니라, 또한 document update 수도 있다. Elasticsearch 실제로는 제자리 (이전 데이터를 덮어쓰는) 업데이트를 하지 않는다. Elasticsearch old document 삭제하고, 한번 업데이트 했다는 내용이 적용된 새로운 document index한다.


다음 예제는 이전 document (ID 1) 어떻게 이름을 "Jane Doe" 변경한 새로운 document 업데이트 되는지를 보여준다.


curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe" }
}'


다음 예제는 이전 document (ID 1) 어떻게 이름을 "Jane Doe" 변경하고 age 필드가 새로 추가된 새로운 document 업데이트 되는지를 보여준다.


curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe", "age": 20 }
}'


업데이트는 간단한 스크립트로 수행될 수도 있다. 다음에 나타나는 dynamic script 1.4.3에서는 기본적으로 사용할 없다. 자세한 내용은 Scripting Docs (http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html)에서 확인할 있다. 다음 예제는 script 나이를 5 증가시키는 것이다.


curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "script" : "ctx._source.age += 5"
}'


위의 예제에서 ctx._source 업데이트 되는 현재 source document 나타낸다.

스크립트는 한번에 하나의 document 대해서만 update 수행할 있다. 나중에는 elasticsearch에서 주어진 query 조건에 따라 여러 document update하는 기능을 지원할 것이다. (SQL문의 Update - Where 문과 유사한 기능 제공 예정)

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

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

트랙백 주소 :: http://www.yongbi.net/trackback/695

트랙백 RSS :: http://www.yongbi.net/rss/trackback/695

댓글을 달아 주세요

댓글 RSS 주소 : http://www.yongbi.net/rss/comment/695
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다