'update'에 해당되는 글 3건

  1. 2015.11.27 [Elasticsearch - The Definitive Guide] Updating a Whole Document.
  2. 2014.04.16 [Elasticsearch] document partial update 알아보기.
  3. 2013.04.16 [elasticsearch] Core API - Get/Multi Get/Update

[Elasticsearch - The Definitive Guide] Updating a Whole Document.

Elastic/TheDefinitiveGuide 2015. 11. 27. 15:07

아주 기본적인 내용이라 그냥 보고 넘어 갈까 했지만, 누군가에게는 필요한 정보 일수도 있어서 기록해 봅니다.


원문링크)


Content Snippet)

Documents in Elasticsearch are immutable; we cannot change them. Instead, if we need to update an existing document, we reindex or replace it, which we can do using the same index API that we have already discussed in Indexing a Document.


종종 elasticsearch 사용하시는 분들중에 update 에 대해서 문의를 합니다.

또는 mapping 정보 변경 시, field 수정/추가 시 등등..


immutable 즉, 불변이라는 것이죠.

수정이 안됩니다. 그렇기 때문에 reindex or replace 라고 하는 것입니다.

동일 문서 ID 로 색인 요청을 하게 되면 delete -> insert 로 동작 합니다.


사용하면서 참고 하시면 좋겠습니다.

:

[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 에 대한 설명은 따로 하지 않겠습니다.

:

[elasticsearch] Core API - Get/Multi Get/Update

Elastic/Elasticsearch 2013. 4. 16. 15:22

본 문서는 개인적인 테스트와 elasticsearch.org 그리고 community 등을 참고해서 작성된 것이며,

정보 교환이 목적입니다.


잘못된 부분에 대해서는 지적 부탁 드립니다.

(예시 코드는 성능 및 보안 검증이 되지 않았습니다.)



[elasticsearch 리뷰]

원문 링크

http://www.elasticsearch.org/guide/reference/api/get.html

http://www.elasticsearch.org/guide/reference/api/multi-get.html

http://www.elasticsearch.org/guide/reference/api/update.html


위 3개의 API 들은 Java API 를 참고하는게 더 좋습니다.

기본  Core API 에서 보여 주고 있는 예제는 REST API 로 kimchy 가 추천하는 방식과는 조금 다른 예제로 보여 주기 위한 목적이 강하다는 판단 입니다.


kimchy 의 추천은 Native Java API 를 사용할 것을 추천 합니다.

: