[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/comment/695