Elasticsearch: Boolean(불리언) 타입 완벽 정리
Elasticsearch에서 Boolean(불리언) 타입은 true / false 값만을 저장할 수 있는 필드 타입입니다.
✔ true 또는 false 값 저장
✔ "true" 같은 문자열도 자동 변환됨
✔ Term Query를 사용하여 검색
이번 글에서는 Boolean 타입의 기본 개념, 주요 옵션, 그리고 실전 적용 예제까지 상세히 알아보겠습니다.
1. Boolean 타입 개요
Boolean 타입은 논리적 참/거짓 값을 저장하는 데 사용됩니다.
✔ "true", "false", 1, 0 같은 값도 자동 변환되어 저장됩니다.
📌 예제 1: Boolean 필드 매핑 설정
PUT my_index
{
"mappings": {
"properties": {
"is_active": {
"type": "boolean"
}
}
}
}
✅ "true", "1" → true로 저장됨
✅ "false", "0" → false로 저장됨
2. Boolean 타입 필드의 주요 옵션
Boolean 타입은 문자열, 숫자 필드와 일부 동일한 옵션을 가집니다.
옵션 | 설명 | 기본값 |
index | 색인 여부 (검색 가능 여부) | true |
doc_values | 집계/정렬을 위한 최적화된 저장 방식 사용 여부 | true |
null_value | 필드가 존재하지 않을 때 기본값 설정 | 없음 |
3. Boolean 데이터 저장 및 검색 예제
📌 예제 2: Boolean 데이터 저장
PUT my_index/_doc/1
{
"is_active": true
}
PUT my_index/_doc/2
{
"is_active": "false"
}
PUT my_index/_doc/3
{
"is_active": 1
}
PUT my_index/_doc/4
{
"is_active": "0"
}
✅ 문자열 "false"도 false로 변환됨
✅ 숫자 1, "0"도 true, false로 변환됨
📌 예제 3: Boolean 값 검색 (Term Query 사용)
GET my_index/_search
{
"query": {
"term": {
"is_active": true
}
}
}
✅ "is_active": true 인 문서만 검색됨
4. Boolean 필드에서 null_value 옵션 활용
✔ Boolean 필드가 null이거나 존재하지 않을 경우 기본값을 설정할 수 있음
📌 예제 4: Boolean 필드에서 null_value 설정
PUT my_index
{
"mappings": {
"properties": {
"is_active": {
"type": "boolean",
"null_value": false
}
}
}
}
✅ null 값이 입력되면 자동으로 false 처리됨
📌 예제 5: null_value 옵션 테스트
PUT my_index/_doc/5
{
"is_active": null
}
✅ "is_active": null → 실제로는 false로 저장됨
5. 정리
개념 | 설명 | 예제 |
Boolean 타입 | true 또는 false 값만 저장 가능 | "true", "false", 1, 0 |
자동 변환 | 문자열 "true"도 true로 저장됨 | "false" → false |
Term Query 사용 | Boolean 값 검색 시 Term Query 활용 | "is_active": true 검색 |
null_value | 필드가 null일 경우 기본값 설정 가능 | null_value: false |
6. 학습 가이드
1️⃣ Boolean 필드에 다양한 값(true, "false", 1, 0)을 저장하고 변환 결과 확인
2️⃣ Term Query를 활용하여 Boolean 값 검색 테스트
3️⃣ null_value 옵션을 사용하여 기본값 설정 및 동작 방식 확인
7. 마무리
Elasticsearch의 Boolean(불리언) 타입은 단순한 참/거짓 값을 저장하는 데 최적화되어 있으며,
✔ true, false, "true", "0" 등 다양한 값이 자동 변환됩니다.
✔ null_value 옵션을 활용하면 null 값 처리 시 기본값을 설정할 수 있습니다.
다음 학습에서는 Boolean 필드와 Filter Query를 활용한 검색 최적화 방법을 다루겠습니다! 🚀
'Elastic Search > 인덱스 설정과 매핑' 카테고리의 다른 글
[Mappings] 위치 정보 (Geo Point & Geo Shape) 완벽 정리 (0) | 2025.02.03 |
---|---|
[Mappings] Object vs Nested 타입 완벽 정리 (0) | 2025.02.03 |
[Mappings] 날짜(Date) 타입 완벽 정리 (0) | 2025.02.03 |
[Mappings] 숫자 데이터 타입 (long, double, scaled_float 등) (0) | 2025.02.03 |
[Mappings] 문자열 [ text, keyword ] (0) | 2025.02.03 |