ElasticSearch ‐ 데이터 저장 타입을 결정하는 매핑과 데이터 타입이란? - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 매핑(mapping)이란? / 데이터 타입(Data Type)

  • 매핑이란 도큐먼트의 각 필드가 어떤 데이터 타입을 가지고 있는가를 정의하는 설정을 의미한다.
  • MySQL에서 테이블을 만들 때 어떤 유형의 데이터를 넣을지를 스키마로 정의하는 것과 같이 ElasticSearch에서 인덱스를 만들 때 어떤 유형의 데이터를 넣을지 매핑을 정의할 수 있다.
  • ElasticSearch에서 지원하는 데이터 타입 종류는 많은데 자주 사용하는 데이터 타입은 아래와 같다.
    • [숫자]
      • 10억 이하 정수만 저장하면 되는 경우 : integer
      • 10억이 넘어가는 정수를 저장해야 될 수도 있는 경우 : long
      • 실수를 저장해야 될 수도 있는 경우 : double
    • [문자]
      • 문자열을 토큰으로 쪼개 저장하고 싶은 경우 : text
      • 문자열을 토큰으로 쪼개지 않고 그대로 저장하고 싶은 경우(그대로 일치할 때) : keyword
    • [기타]
      • 날짜 데이터 : date
      • true, false를 저장하는 경우 : boolean

❗계산에서 쓰는 값이 아니라면 숫자가 아닌 문자로 저장해야 한다.(Ex. 휴대폰 번호, 주민등록번호)

📚 매핑의 특징

  • null을 허용
  • 배열을 허용

📚 데이터 타입

  • 자세한 내용들은 공식문서에도 참 정리가 잘 되어있다.
  • 범위에 맞게끔 적용해서 개발하면 된다.