✅ 매핑
RDBMS에서 테이블을 만들고 어떤 유형의 데이터를 넣는지 정의 = 스키마를 정의
✅ Elasticsearch 의 데이터 타입 (중요한것만)
[숫자]
integer
long
double
[문자]
text
keyword
010-1234-5678
이메일 abc@naver.com
[기타]
date
boolean
✅ 매핑의 특징
null
을 허용Elasticsearch는 매핑을 정의하더라도
해당 필드가 반드시 존재하거나 null이면 안 된다는 제약을 두지 않는다
ex)
다음 예시처럼 매핑을 정의했을 때
"mappings": {
"properties": {
"title": { "type": "text" }
"content": { "type": "text" }
}
}
데이터를 이런식으로 넣어도 문제없이 들어간다
{
"title": null,
"content": "hihi"
}
{
"content": "hihi"
}
Elasticsearch는 별도의 설정 없이 배열(array) 형태의 데이터를 삽입할 수 있다
다음과 같이 매핑을 정의했을 때
"mappings": {
"properties": {
"hashtags": { "type": "text" }
}
}
이런식으로 데이터를 넣을 수 있다
{
"hashtags": "여행"
}
{
"hashtags": ["여행", "요리"]
}
배열에 있는 값이 각각 토큰으로 분리되서 역인덱스로 저장이되서
여행
이라는 키워드로 검색하면 위 2가지 데이터 전부 다 조회된다