Programming/ElasticSearch
Upsert
dev?
2024. 11. 21. 10:13
반응형
1. Upsert
Upsert는 Elasticsearch에서 문서가 존재하면 업데이트하고, 존재하지 않으면 새로 삽입하는 작업을 수행하는 기능입니다.
2. Upsert 동작 방식
1) 문서가 존재하는 경우
- upsert 데이터는 무시됩니다.
- 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
-- 수정
POST /my_index/_update/16
{
"doc":{
"author" : "수정본"
},
"upsert": {
"title" : "Elasticsearch Basics",
"author" : "새로 생성",
"publish_date" : "2024-05-09",
"tags" : ["search", "analytics"]
}
}
반응형