Elasticsearch가 처음이신가요? Elasticsearch 입문용 웨비나에 참여하세요. 지금 무료 클라우드 체험을 시작하거나, 내 기기에서 Elastic을 사용해 볼 수 있습니다.
Elasticsearch에서는 문서에서 필드를 삭제하는 것이 일반적인 요구 사항입니다. 이 기능은 색인에서 불필요하거나 오래된 정보를 제거하려는 경우에 유용할 수 있습니다. 이 문서에서는 Elasticsearch의 문서에서 필드를 삭제하는 다양한 방법과 예제 및 단계별 지침에 대해 설명합니다.
방법 1: 업데이트 API 사용
업데이트 API를 사용하면 문서의 소스를 수정하는 스크립트를 제공하여 문서를 업데이트할 수 있습니다. 이 API를 사용하면 필드를 null로 설정하여 문서에서 필드를 삭제할 수 있습니다. 다음은 이를 수행하는 방법에 대한 단계별 가이드입니다:
1. 업데이트하려는 문서의 인덱스, 문서 유형(Elasticsearch 6.x 이하를 사용하는 경우), 문서 ID를 식별합니다.
2. 필드를 null로 설정하거나 더 나아가 소스 문서에서 필드를 제거하는 스크립트와 함께 업데이트 API를 사용합니다. 다음 예는 "my_index" 인덱스에서 ID가 "1"인 문서에서 "field_to_delete" 필드를 삭제하는 방법을 보여 줍니다:
3. 요청을 실행합니다. 성공하면 Elasticsearch는 문서가 업데이트되었음을 나타내는 응답을 반환합니다.
참고: 이 메서드는 지정된 문서에서 필드만 제거합니다. 이 필드는 인덱스의 매핑 및 기타 문서에 계속 존재합니다.
방법 2: 수정된 소스로 재색인하기
인덱스의 모든 문서에서 필드를 삭제하려면 재색인 API를 사용하여 수정된 소스로 새 인덱스를 만들 수 있습니다. 방법은 다음과 같습니다:
1. 원래 인덱스와 동일한 설정 및 매핑을 사용하여 새 인덱스를 만듭니다. 인덱스 가져오기 API를 사용하여 원본 인덱스의 설정과 매핑을 검색할 수 있습니다.
2. 재색인 API를 사용하여 원본 인덱스에서 새 인덱스로 문서를 복사하는 동시에 소스에서 필드를 제거합니다. 다음 예는 "my_index" 인덱스의 모든 문서에서 "field_to_delete" 필드를 삭제하는 방법을 보여 줍니다:
3. 새 인덱스에 필드가 제거된 올바른 문서가 포함되어 있는지 확인합니다.
4. 모든 것이 정상으로 보이면 원래 인덱스를 삭제하고 필요한 경우 원래 인덱스 이름의 별칭을 새 인덱스에 추가할 수 있습니다.
방법 3: 매핑 업데이트 및 재인덱싱하기
매핑에서 필드를 삭제하고 인덱스의 모든 문서를 삭제하려면 매핑을 업데이트한 다음 문서를 다시 색인하면 됩니다. 방법은 다음과 같습니다:
1. 원래 인덱스와 동일한 설정으로 새 인덱스를 만듭니다.
2. 매핑 가져오기 API를 사용하여 원본 인덱스의 매핑을 검색합니다.
3. 삭제하려는 필드를 제거하여 매핑을 수정합니다.
4. 매핑 넣기 API를 사용하여 수정된 매핑을 새 인덱스에 적용합니다.
5. 방법 2에 설명된 대로 재색인 API를 사용하여 원래 색인에서 새 색인으로 문서를 복사합니다.
6. 새 인덱스에 필드가 제거된 올바른 문서가 포함되어 있고 해당 필드가 매핑에 없는지 확인합니다.
7. 모든 것이 정상으로 보이면 원래 인덱스를 삭제하고 필요한 경우 원래 인덱스 이름의 별칭을 새 인덱스에 추가할 수 있습니다.
결론
이 문서에서는 업데이트 API 사용, 수정된 소스로 재색인, 매핑 업데이트 및 재색인이라는 세 가지 방법으로 Elasticsearch의 문서에서 필드를 삭제하는 방법에 대해 설명했습니다. 각 방법에는 고유한 사용 사례와 장단점이 있으므로 요구 사항에 가장 적합한 방법을 선택하세요. 변경 사항을 프로덕션 환경에 적용하기 전에 항상 테스트하고 결과를 확인하는 것을 잊지 마세요.




