Elasticsearch upsert (update or insert)

1 분 소요

Elasticsearch에 데이터를 적재할 때 동일한 id가 존재하면 update하고 없으면 insert하고 싶을 때 upsert를 사용하면 가능합니다. update query에 "doc_as_upsert": true를 입력하면 됩니다.

id update < doc_as_upsert 없이 없는 id update >


doc_as_upsert 없이 없는 id를 update하면 위와 같이 오류가 발생합니다. 하지만 doc_as_uspert 옵션을 줄 경우 아래와 같이 insert가 동작하는 것을 확인할 수 있습니다.

id update 2 < doc_as_upsert 옵션을 켜고 없는 id update >

id update 2 check < insert된 document 확인 >


이제 생성된 ducment id에 그대로 gender field를 추가해서 update를 해보면 아래와 같이 update가 동작하는 것을 볼 수 있습니다.

id update 3 < doc_as_upsert를 켜고 존재하는 id update >

id update 3 check < update된 document 확인 >


정리해보면 아래와 같습니다.

옵션 ID 유무 동작
doc_as_upsert=false updqte
doc_as_upsert=false error
doc_as_upsert=true update
doc_as_upsert=true insert

댓글남기기