Elasticsearch 문서 수정 및 조회를 해보도록 하겠습니다.
:문서 수정
문서를 인덱싱하거나 교체할 수 있는 것 처럼 수정도 가능합니다.
실제로는 Elasticsearch에서 기존의 내용을 수정하지는 않습니다.
만약 수정요청이 오면 Elasticsearch는 기존의 문서를 인덱스에서 삭제하고 신규 문서를 인덱싱하여 한번에 수정한 것 처럼 만듭니다.
아래 예제는 기존에 ID 1로 만든 문서의 name 항목을 Gil Dong로 변경하는지 보여줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "doc": { "name": " Gil Dong" } }' { "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 2, "result" : "updated", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 2 } | cs |
아래 예제는 기존의 ID 1로 만든 문서의 name 항목을 Kang Nam 으로 변경하면서 age 라는 항목을 추가하는 것 입니다.
1 2 3 4 | curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "doc": { "name": " Kang Nam", "age" : 20 } }' | cs |
또는 간단한 스크립트 방식으로 문서를 수정할 수 있습니다. 아래 예제는 기존의 age에 5를 더하는 것 입니다.
1 2 3 4 | curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/customer/external/1/_update?pretty&pretty' -d' { "script" : "ctx._source.age += 5" }' | cs |
변경되었는지 확인해봐야겠죠?
1 2 3 4 5 6 7 8 9 10 11 12 | curl -XGET 'localhost:9200/customer/external/1?pretty&pretty' { "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 4, "found" : true, "_source" : { "name" : " Kang Nam", "age" : 25 } } | cs |
이때, ctx._source 현재 수정될 문서를 가리키고 있습니다.
ID 가 2번의 문서를 추가해보겠습니다.
1 2 3 4 5 6 | curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/customer/external/2?pretty -d ' { "name": "number 2" } ' curl -XGET 'localhost:9200/customer/external/2?pretty&pretty' | cs |
자 여기서 ID 2번 또 추가하면 어떻게 될까요 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/customer/external/2?pretty -d ' { "name": "number 2 : 이미 있는2번인데" } ' curl -XGET 'localhost:9200/customer/external/2?pretty&pretty' { "_index" : "customer", "_type" : "external", "_id" : "2", "_version" : 2, "found" : true, "_source" : { "name" : "number 2 : 이미 있는2번인데" } } | cs |
_source 의 문서가 업데이트 되었다는점을 위 내용으로 확인할수 있습니다.
'소행성이야기' 카테고리의 다른 글
생생정보 리 동네 숨은 맛집 괴산에 위치한 자연산 버섯전골 맛집인 다래정 위치 가격 (0) | 2018.09.14 |
---|---|
확장프로그램 설치없이 웹브라우저 전체화면 캡쳐 무료 (0) | 2018.09.07 |
Elasticsearch 클러스터 상태확인 인덱스목록 문서색인 문서삭제 문서조회 알아봅시다. (0) | 2018.09.06 |
Elasticsearch 기본 개념을 잡아보자 (0) | 2018.09.06 |
Elasticsearch 6.4 한글 형태소 분석 플러그인 nori 설치 (0) | 2018.09.06 |