그외

728x90
elastic-search reindex

기존 products_v1 인덱스를 초기화한 후, CSV 파일을 기반으로 products_v2 인덱스를 생성하고, 해당 데이터를 다시 products_v1 으로 reindex하려고 한다.

이 작업은 Kibana UIDev Tools 콘솔을 통해 진행한다.

 

CSV 파일 기반 index 생성

kibana -> Analytics -> Machine Learning -> Visualize data from a file

 

  1. CSV 파일 업로드
  2. CSV에 헤더가 있다면 → Override settings → Has header row 체크
  3. 원하는 인덱스 이름 입력 (products_v2 등)
  4. 인덱스 생성 완료

스크린샷 2025-06-17 오전 11.52.34

Kibana -> Analytics -> Discover

Create data view 를 클릭했다면 Discover 에 우리가 추가한 index 를 기반으로 한 dataview 가 생성된다. 굳이 dataview 를 통해 index 를 볼필요가 없다면 data view 를 만들지 않아도 상관없다.

 

Reindex

products_v2 인덱스가 준비되었으면, 기존 products_v1 데이터를 삭제한 후, products_v2 의 데이터를 기반으로 products_v1 을 다시 채운다.

 

Kibana -> Management -> Dev Tools

Kibana 의 Dev Tools 를 들어가면 우리가 원하는 스타일의 명령어를 입력할수 있다.

POST products_v1/_delete_by_query
{
  "query": {
    "match_all": {}
  }
}

위 명령어를 통해 products_v1 인덱스의 모든 문서만 삭제한다.

인덱스 자체는 삭제하지 않아야 하므로, DELETE 가 아닌 _delete_by_query 를 사용한다.

 

위 명령어를 통해 모든 products_v1 의 모든 데이터를 삭제했다면 이제 아래 명령어를 통해 products_v2 기반으로 products_v1 을 reindex 를 하면 된다.

POST _reindex
{
  "source": {
    "index": "products_v2"
  },
  "dest": {
    "index": "products_v1"
  }
}

products_v2의 데이터를 기반으로 products_v1 인덱스를 재구성한다.

기존 products_v1의 매핑 및 설정은 유지되며, 데이터만 덮어씌워진다.

 

3줄 요약

  1. CSV 파일 기반 products_v2 인덱스 생성
  2. 기존 products_v1 문서 삭제 (_delete_by_query)
  3. products_v2 → products_v1로 데이터 복사 (Reindex)
728x90

+ Recent posts