반응형
엘라스틱서치를 사용하다보면 초기에 인덱스 필드의 타입을 잘 못 지정해서 타입을 변경해 주어야하는 경우가 종종 생긴다.
이런 경우 필드의 타입을 변경하는 방법은 없다. 그래서 이런 경우엔 인덱스를 다시 만들어 주고 새로운 인덱스에 다시 데이터를 넣어주어야 한다.
기존 index에 있던 데이터를 새로운 index에 넣어주는 작업을 reindex라고 하고 엘라스틱서치에서 기본적으로 지원해주는 명령어이다.
test1 인덱스에 있던 데이터를 test2 인덱스로 넣어준다고 예를 들어보자.
POST _reindex?wait_for_completion=false
{
"source": {
"index": "test1"
},
"dest": {
"index": "test2"
}
}
이렇게 해주면 작업중이라는 짧은 메세지가 바로 나온다.
(?wait_for_completion=false 이 옵션은 데이터가 많은 경우 타임아웃 에러가 나기때문에 추가해주었다.)
그러면
GET /_cat/indices?v
전체 인덱스를 조회해서 새로운 인덱스에 데이터가 다 찰때까지 기다려주면 된다. 그 이후 기존 인덱스는 지워준다.
DELETE /test1?pretty
이렇게 해주면 마무리 된다.
반응형
'엘라스틱서치' 카테고리의 다른 글
엘라스틱서치, 데이터를 업데이트하는 다양한 방법 (0) | 2023.09.13 |
---|---|
엘라스틱서치 - 와일드카드 검색, like 검색 (0) | 2023.08.31 |
엘라스틱서치에서 날짜별로 group by 하기 - aggs (0) | 2023.07.27 |
엘라스틱서치에서 group by 사용하기 - aggs (0) | 2023.07.25 |
Logstash의 활용 - 새롭게 등록되거나 수정된 데이터만 등록 (0) | 2023.07.03 |