Programming/ElasticSearch

[ElasticSearch] 매핑(Mapping)

dev? 2024. 7. 12. 13:46
반응형

매핑(Mapping) 이란? 

문서의 구조를 나타내는 정보이다. 

ElasticSearch RDBMS
mapping schema

 

매핑(Mapping)의 종류

종류 정의
동적 매핑
(Dynamic Mapping)
처음 색인되는 문서를 바탕으로 매핑 정보를 ElasticSearch가 동적(자동)으로 생성
정적 매핑
(Static Mapping)
문서의 매핑 정보를 미리 정의

 

1) 동적 매핑 (Dynamic Mapping)

- 어떤 문서가 색인될지 스키마를 미리 정의하지 않아도 된다. 

- 동적 매핑에 의해 매핑 정보가 생성된 후에는 타입이 맞지 않을 경우 파싱 에러가 발생한다. 

 

2) 정적 매핑 (Static Mapping) 

- 어떤 문서가 색인될지 스키마를 미리 정의한다. 

- 모든 필드를 미리 정의할 필요가 없으며(정하지 않은 필드는 동적 생성), 특정 타입에 대해서만 미리 정의 한다.

 

정적 매핑(Static Mapping)을 사용하는 이유는? 

1. 문서의 필드들이 가지는 값에 따라 타입을 지정해 줄 필요가 있을 경우 

ex) 동적 매핑으로 특정 필드의 타입을 float으로 지정하였으나, 실제 데이터의 크기가 float보다 클 경우 

2. 불필요한 색인이 발생하지 않도록 하기 위해서 

ex) 동적매핑을 할때 타입이 'text'인 경우 자동으로 "keyword" 필드가 발생하는데, 실제 데이터가 "keyword" 필드가 불필요한 경우 

 

 

반응형