-
엘라스틱서치 업데이트 API [doc] ( detect_noop, doc_as_upsert )공부하기/엘라스틱서치 2024. 2. 25. 15:04
- 지정한 문서 하나를 업데이트한다.
- 요청 본문에 doc 또는 script를 지정하여 업데이트할 내용을 기술한다.
- 기본적으로 부분 업데이트(partial update)로 동작한다.
- _source를 비활성화시킨 경우 업데이트 API를 사용할 수 없다.
doc에 내용을 직접 기술하는 업데이트 문법
POST 인덱스이름/_update/_id값 { "doc": { ... 업데이트 할 내용 } }
detect_noop
- 엘라스틱서치는 업데이트 작업 수행 전 요청이 noop(no operation) 요청인지 확인하고 noop 요청이라면 쓰기 작업을 수행하지 않는다.
- noop을 검사하면 불필요한 디스크 I/O를 줄일 수 있다.
- 업데이트 요청에 detect_noop 옵션을 false로 요청하면 detect_noop은 비활성화된다.
- 대부분의 경우 detect_noop을 수행하는것이 좋으나, 시스템 특성상 noop이 발생할 가능성이 없다면 비활성화하는 것이 약간의 성능 향상에 도움이 된다.
- 커스텀 플러그인을 사용하는 경우
- noop인 경우 색인 작업을 수행하지 않는다.
- 커스텀 플러그인 중 preIndex, postIndex 메서드를 수행하는 경우 색인 작업을 하지 않기 때문에 에러가 발생할 수 있음
- 또 detect_noop의 경우 클라이언트에서 지정할 수 있으므로 설계 시 유의해야한다.
doc_as_upsert
- 기존 문서가 없을 때 새로 문서를 추가한다.
- 문서가 존재한다면 문서를 업데이트한다.
'공부하기 > 엘라스틱서치' 카테고리의 다른 글
엘라스틱서치 삭제 API (0) 2024.02.26 엘라스틱서치 업데이트 API [script] (0) 2024.02.26 엘라스틱서치 조회 API (0) 2024.02.25 엘라스틱서치 색인 API ( PUT | POST ) (0) 2024.02.25 엘라스틱서치 라우팅 (2) 2024.02.13