ES에서 mapping이란 RDBMS에서의 스키마와 비슷한 개념으로 볼 수 있는데
즉 문서의 구조를 나태내는 정보이다.
ES는 스키마리스(schemaless)라는 특징이 있어서 스키마가 없어도 된다고 오해할 수 있는데
스키마가 없어도 되는 것이아니라 미리 정의하지 않아도 되는 즉 동적으로 스키마를 구성할 수 있다는 장점이 있는 것이다.
그래서 매핑의 종류는 2가지가 존재한다.
1. 동적 매핑 : 처음 색인되는 문서를 바탕으로 매핑 정보를 Elasticsearch가 자동으로 생성해줌
2. 정적 매핑 : 개발자나 엔지니어가 문서의 매핑 정보를 미리 정의해놓고 사용
Mapping 정보가 생성된 후 알고 있어야할 것
1. 동적매핑이던 정적 매핑이던 매핑 정보가 생성된 후에는 타입이 안맞은 경우 파싱에러가 발생한다.
2. 정적 매핑은 언제 사용해야하는가?
2.1 document들의 필드들이 가지는 값에 따라 타입을 지정해줄 필요가 있을 때 사용한다.
2.2 불필요한 색인이 발생하지 않게 하기 위할 떄
ES에서는 문자열 필드를 동적으로 매핑할 경우 자동으로 text와 keyword 라는 타입으로 생성한다.
즉 하나의 필드에 text, keyword라는 2가지 타입이 생성되기 때문에 해당 필드를 조회할 때
text로 한번, keyowrd로 한번 총 2번의 색인이 발생되어버리는데 이러한 불필요한 색인을 없애기 위해서
정적 매핑을 해야한다.
'ElasticSearch' 카테고리의 다른 글
Elasticsearch 기본개념 정리 (4) : Elsaticsearch 색인(Indexing) 이란? (0) | 2023.02.12 |
---|---|
Elasticsearch 기본개념 정리 (2) : 인덱스와 샤드 (0) | 2023.02.12 |
Elasticsearch 기본개념 정리 (1) : Elasticsearch의 개념과 특징, 노드(node) 그리고 클러스터(cluster)에 대해서 (0) | 2022.12.25 |
ElasticSearch - inculde (0) | 2022.11.02 |
ElasticSearch - _delete_by_query 사용 (0) | 2022.03.16 |