'partial update'에 해당되는 글 1건

  1. 2014.04.16 [Elasticsearch] document partial update 알아보기.

[Elasticsearch] document partial update 알아보기.

Elastic/Elasticsearch 2014. 4. 16. 18:11

검색엔진을 사용하다 보면 문서에 대한 부분 업데이트가 필요할 때가 있습니다.

루씬을 이용하낟고 하면 보통 아래와 같은 flow 로 진행을 하게 되는데요.


Step 1. get document.

Step 2. field update/modify.

Step 3. reindexing document.


검색엔진 특성상 색인된 문서를 가져와서 수정이 필요한 필드의 데이터를 변경한 후 다시 색인을 할 수 밖에 없습니다.

elasticsearch 에서도 좀 예전 버전에는 partial update 기능이 없었는데요.

저도 정확히는 기억이 안나지만, 어쨌던 0.19.x 이후 부터는 포함이 되어 있습니다.


레퍼런스 문서)

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html


플러그인)

https://github.com/medcl/elasticsearch-partialupdate


사용방법은 update api 에 mvel 문법을 이용해서 script 로 작성 하시면 됩니다.

작성 방법 및 예제는 레퍼런스 문서에 아주 잘 나와 있습니다.


주의사항)

- elasticsearch 는 lucene 기반이죠. 그렇기 때문에 partial update 라고 하더라도 내부적으로는 그냥 reindexing 하는 거와 같습니다.

- index mappings 정보 설정 시 _source enable 로 설정 하셔야 합니다.

    "mappings" : {

........

            "_source" : {

                "enabled" : "true"

            },

........

    }

뭐 default true 라서 꼭 설정할 필요는 없지만 명시적으로 하는걸 좋아 하다 보니.. ^^; 


레퍼런스 문서)

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-source-field.html#mapping-source-field


※ _source field 에 대한 설명은 따로 하지 않겠습니다.

: