개발노트

Upsert 본문

Programming/ElasticSearch

Upsert

dev? 2024. 11. 21. 10:13
반응형

1. Upsert

Upsert는 Elasticsearch에서 문서가 존재하면 업데이트하고, 존재하지 않으면 새로 삽입하는 작업을 수행하는 기능입니다. 

 

2. Upsert 동작 방식

1) 문서가 존재하는 경우

  1. upsert 데이터는 무시됩니다.
  2. doc 또는 script를 사용해 기존 문서의 일부만 업데이트합니다.

2) 문서가 존재하지 않는 경우

upsert 데이터를 사용해 새로운 문서를 생성합니다.

 

3. Upsert 구조

POST /index_name/_update/document_id
{
  "doc": {
    "field1": "value1",
    "field2": "value2"
  },
  "upsert": {
    "field1": "default_value1",
    "field2": "default_value2",
    "field3": "default_value3"
  }
}


 

4. 사용 예시

1) document_id가 있는 경우

-- 존재하는지 조회
GET /my_index/_doc/16

수정 전

-- 수정
POST /my_index/_update/16
{
  "doc":{
    "author" : "John Doe로 수정"
  },
  "upsert": {
    "title" : "Elasticsearch Basics",
    "author" : "Jane Doe",
    "publish_date" : "2024-05-09",
    "tags" : ["search", "analytics"]
  }
}

수정 후

 

2) document_id가 없는 경우

-- 조회
GET /my_index/_doc/16

document_id가 16인 문서를 찾았으나, 존재하지 않음

-- 수정
POST /my_index/_update/16
{
  "doc":{
    "author" : "수정본"
  },
  "upsert": {
    "title" : "Elasticsearch Basics",
    "author" : "새로 생성",
    "publish_date" : "2024-05-09",
    "tags" : ["search", "analytics"]
  }
}

수정 후

 

 

반응형

'Programming > ElasticSearch' 카테고리의 다른 글

Script  (1) 2024.11.20
script 와 doc 차이  (0) 2024.11.20
대시보드에서 elasticsearch 명령어 확인  (0) 2024.11.19
Elastic Stack ( ELK Stack )  (0) 2024.11.13
[ElasticSearch] text와 keyword 타입  (0) 2024.08.06