Elasticsearch의 문서에서 필드 삭제하기

Elasticsearch에서 문서에서 필드를 삭제하는 방법을 살펴봅니다.

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의 문서에서 필드를 삭제하는 방법에 대해 설명했습니다. 각 방법에는 고유한 사용 사례와 장단점이 있으므로 요구 사항에 가장 적합한 방법을 선택하세요. 변경 사항을 프로덕션 환경에 적용하기 전에 항상 테스트하고 결과를 확인하는 것을 잊지 마세요.

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요