ES 매핑(mapings) 개념

LEE_DEV_LOG·2022년 4월 5일
0

매핑 === 스키마
엘라스틱 서치에서 처음 인덱스를 생성하면 자동으로 매핑이 만들어진다.
하지만 자동으로 사용하는 경우는 없다. 효율적인 사용을 위해서
매핑작업을 해야 한다.
1. 자동매핑은 적절하지 않은 매핑을 만들어낸다.
2. Index Template 를 사용해라. 인덱스를 추가할 때 기본적으로 적용될 템플릿을 만들어라.
3. 커스텀 아날라이저를 만들어 사용해라.
4. 싱글 인덱스에 여러개의 타입을 만들지 마라.
5. 모든 신규 템플릿에 적용될 디폴트 템플릿을 만들어라 : 즉 글로벌 세팅을 통해 신규로 추가되는 템플릿에 반드시 적용되도록 하라.

자동으로 생성된 매핑을 가져와서 우리가 원하는 매핑을 만드는 방법이 있다.

너무 많은 필드를 정의하는 것은 매핑 폭발을 일으킬 수 있다.
그리고 그것은 메모리 누락이라던지 다른 상황을 야기시킬 수 있다.

매핑을 명시적으로 해야한다.
정적인 매핑은 동적매핑과 다르다.

명시적으로 매핑되지 않은 필드와 함께 제출된 모든 문서에서 아래와 같은 문제가 발생할 수 있다.
기본적으로 문서에서 이전에 볼 수 없었던 필드가 발견되면 엘라스틱 서치는 새 필드를 유형 매핑에 추가해야 한다.

매핑이란

  • 문서와 문서에 포함된 필드가 저장되는 방식이다.
    각각의 문서는 필드의 집합이다. 그리고 이 필드들은 각각의 데이터 타입을 가지고 있다.
    데이터를 매핑을 할 때 너는 매핑 정의를 하게 되고 그 정의서는 필드 리스트를 포함하고 있다.
    매핑 정의서에는 메타데이터가 처리되는 방식을 사용자가 지정하는 필드와 같은 메타데이터 필드도 포함된다. (_source)

동적 매핑 및 명시정 매핑을 사용하여 데이터를 정의한다.
Use dynamic mapping and explicit mapping to define your data.
엘라스틱서치는 문서를 저장함으로써 자동적으로 새로운 필드들은 추가한다.

명시적 매핑을 사용하면 다음과 같이 매핑정의를 정의하는 방법을 정확하게 선택 할 수 있다.

새로운 문서가 추가 될 때 새로운 필드를 생성하는 경우 예를 들어 동적 매핑과 같은 경우를 고려해야한다.
그리고 이것은 매핑 폭발을 일어킬 수 있다.
매핑제한 설정을 사용하여서 필드 매핑의 숫자를 제한해야 한다. (수동 또는 동적으로 생성된)
그리고 문서가 매핑 폭발을 일으키는 것을 막아야 한다.

profile
LEE_DEV_LOG

0개의 댓글