-
ElasticsearchException + MappingException개발 지식 2025. 1. 24. 18:58
ElasticsearchException는 인덱스 명 불일치, 매핑 정보 불일치, 샤드 상태 손상, 쿼리 생성 불가, 클라이언트 연결 문제 등 다양한 원인이 존재할 수 있다.
대부분 Elasticsearch 명령어를 사용해 원인을 찾을 수 있지만, 그렇지 못한 경우를 발견해 기록을 남긴다.Kotlin과 Java의 차이로 인해 발생
Elasticsearch는 데이터를 조회할 때 클래스의 생성자를 확인하고, 생성자가 없다면 기본 생성자를 통해 객체를 생성한 뒤, 리플렉션을 통해 메모리에 로드한다.
하지만 코틀린은 리플렉션을 기본적으로 지원하지 않기에, 생성자를 통해 객체를 생성하지 못했다면 위 예외가 발생한다.또한 null 가능성이 서로 충돌하는 경우에도 발생할 수 있다.
Elasticsearch는 데이터가 null인 경우에 해당 필드의 매핑을 건너뛰어 표시가 되지 않기 때문에 원인을 파악하기 어려울 수 있다.
만약 비즈니스 로직으로 인해 영속성 클래스와 Document 클래스의 null 가능성을 일치시킬 수 없다면,인덱스 수동 생성, mapping.json 파일 설정 등의 방법으로 해결을 시도해 볼 수 있다.
'개발 지식' 카테고리의 다른 글
프로젝트 분석 도구 (4) 2024.11.09 SpringBoot 프로젝트 ELK 연동 (0) 2024.11.09 코딩 컨벤션 (Coding Conventions) (0) 2023.12.26