반응형
_update_by_query
아래와 같은 document 가 있을 때,
{
"user_name": "hello-bryan",
"site_url": "https://hello-bryan.tistory.com",
"language": "python"
}
language 필드의 값만 바꾸고 싶다면
POST your_index/_update_by_query?conflicts=proceed
{
"script":{
"source": "ctx._source.language = 'java'"
},
"query": {
"query_string": {
"query": "_id: 123456"
}
}
}
query 필드로 documents 를 검색해서 검색된 결과를 모두 업데이트 합니다.
위는 간단한 값을 변경하는 예제이고
params 를 사용하면 여러가지 타입의 값을 변경하기 수월합니다.
POST your_index/_update_by_query?conflicts=proceed
{
"script":{
"source": "ctx._source.field_name = params.new_value",
"lang": "painless",
"params": {
"new_value": "hello-bryan.tistory.com"
}
},
"query": {
"query_string": {
"query": "some_field: some_filter"
}
}
}
- conflicts: 업데이트 중 충돌을 처리
- abort: 기본값. 업데이트 중단
- proceed: 계속 진행
- script: 스크립트를 정의
- source: 스크립트 내용
- lang: 기본 painless
- params: 스크립트에서 사용할 매개 변수
- refresh
- true: 기본값. 업데이트 즉시 갱신
- false
- requests_per_second: 초당 요청 제한을 설정
- slices: 병렬로 실행되는 작업 수를 정의
- timeout: 최대 실행 시간
728x90
반응형
'elasticsearch' 카테고리의 다른 글
[ElasticSearch] random 으로 조회하기 (0) | 2023.08.25 |
---|---|
[elasticsearch] cluster_block_exception FORBIDDEN/12/index read-only / allow delete (api)] 해결하기 (0) | 2020.03.20 |
[elasticsearch] Centos에서 elasticsearch 가 시작이 안될 때 (0) | 2020.03.20 |
[elasticsearch] linux(centos7) nori plug-in설치 (2) | 2020.03.06 |
[elasticsearch] cors 설정 (Access-Control-Allow-Origin) (0) | 2020.03.05 |
댓글