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를 활용한 검색 최적화 방법을 다루겠습니다! 🚀

+ Recent posts