**매핑(mapping)**이란 도큐먼트(document)의 각 필드가 어떤 데이터 타입을 가지고 있는지 정의하는 설정을 의미합니다.
MySQL에서 테이블을 만들 때 어떤 유형의 데이터를 넣을지 스키마(schema)를 정의하는 것처럼, Elasticsearch에서 인덱스를 만들 때 어떤 유형의 데이터를 넣을지 **매핑(mapping)**을 정의할 수 있습니다.
데이터 타입(data type)
Elasticsearch에서 데이터 타입의 종류는 아주 많습니다. 그중 자주 사용하는 데이터 타입에 대해서만 알아보겠습니다.
[숫자]
- 10억 이하의 정수만 저장하면 되는 경우:
integer - 10억이 넘어가는 정수를 저장해야 될 수도 있는 경우:
long - 실수(소수점을 가진 숫자 포함)를 저장해야 될 수도 있는 경우:
double
[문자]
- 문자열을 토큰으로 쪼개서 저장하고 싶은 경우:
text- 유연한 검색이 필요할 때(완전히 일치하지 않아도 비슷한 데이터를 조회해오는 방식)
- 문자열을 토큰으로 쪼개지 않고, 문자열 그대로 저장하고 싶은 경우:
keyword- 정확한 검색이 필요할 때(정확하게 일치할 때만 데이터를 조회해오는 방식)
- ex) 휴대폰 번호(
010-1234-5678), 이메일(jscode@gmail.com), 주문번호(156293920) - 주의) 계산에서 쓰는 값이 아니라면 숫자가 아닌 문자로 저장해야 합니다. 예를 들어, 휴대폰 번호나 주민등록번호에 숫자를 더하거나 빼지 않습니다. 즉, 휴대폰 번호나 주민등록번호는 숫자가 아닌 문자로 저장해야 합니다.
[기타]
- 날짜 데이터를 저장해야 하는 경우:
date - true, false를 저장해야 하는 경우:
boolean
댓글
GitHub 계정으로 로그인하시면 댓글과 질문을 남기실 수 있습니다. 남겨 주신 글은 이 저장소의 Discussions에 쌓입니다.