[ELK] 엘라스틱서치 KEYWORD / TEXT 타입

2025. 2. 3. 22:52·ELK
728x90

TEXT와 KEYWORD 타입 모두 문자열을 처리하기 위한 타입


KEYWORD 타입

  • 특징: 분석(analysis) 없이 원본 문자열 그대로 저장됨.
  • 사용 용도: 정렬, 집계(aggregation), 필터링(filtering) 등에 적합
  • 검색 방식: 전체 문자열이 하나의 토큰으로 저장되서 전체 문자열 검색
{
  "mappings": {
    "properties": {
      "category": {
        "type": "keyword"
      }
    }
  }
}
  • 위에 형태로 매핑한 경우  "category": "Web Development"라는 데이터를 저장하면 검색 시 "Web"이나 "Development"로는 검색되지 않고 "Web Development" 전체 일치해야 검색
  • 사용 적합 예시 : 국가코드, UUID, 로그 레벨 등

TEXT 타입

  • 특징: 분석(analysis)을 거쳐 토큰화(tokenization) 후 저장됨.
  • 사용 용도: 전문 검색(full-text search)에 적합.
  • 검색 방식: 토큰화된 개별 단어 기준으로 검색 가능.
{
  "mappings": {
    "properties": {
      "description": {
        "type": "text"
      }
    }
  }
}
  • 위 설정에서 "description": "Web Development is fun"이라는 데이터를 저장하면, "Web"이나 "Development"로도 검색 가능.
  • 사용 적합 예시 : 글 제목, 설명

KEYWORD vs TEXT 비교 

  KEYWORD TEXT
분석기 사용 X O
검색 방식 전체 일치 부분 검색 가능
졍렬 가능 가능 불가능
집계 가능 가능 불가능
필터링용 적합 부적합

KEYWORD / TEXT 동시 사용 가능

문자열을 동적 매핑하는 경우 TEXT와 KEYWORD 타입이 모두 생성되고, 정적 매핑하여 동시에 생성해서 같이 사용이 가능하다.

{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

 

  • "title" 필드는 전문 검색용 (TEXT / "title": "Web Development" → "Web"이나 "Development"로 검색 가능)
  • "title.raw" 필드는 필터링, 정렬, 집계용 (KEYWORD / "title.raw": "Web Development" → 전체 일치 검색 및 정렬 가능)

마무리

  • KEYWORD가 TEXT타입보다 색인이 더 빠르게 됨 (TEXT는 토크나이징이 진행되기 때문)
  • 굳이 토크나이징이 필요하지 않은 필드 같은 경우에는 KEYWORD로 정적 매핑 설정해서 사용하면 성능에 도움이 됨 필요한 타입을 적재적소로 정적 매핑하여 사용하는 것이 좋음 
저작자표시

'ELK' 카테고리의 다른 글

[ELK] 엘라스틱서치 Alias  (0) 2025.02.08
[ELK] 엘라스틱서치 샤드  (0) 2025.02.03
[ELK] index [.async-search] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block] 발생시 처리  (0) 2022.02.08
[ELK] 로그스태시 설치  (0) 2021.12.31
[ELK] 키바나 설치  (0) 2021.12.28
'ELK' 카테고리의 다른 글
  • [ELK] 엘라스틱서치 Alias
  • [ELK] 엘라스틱서치 샤드
  • [ELK] index [.async-search] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block] 발생시 처리
  • [ELK] 로그스태시 설치
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    Spring
    자바
    Kafka
    splunk
    IntelliJ
    이펙티브 코틀린
    cleancode
    코틀린
    JPA
    AWS
    엘라스틱서치
    SQL
    Elk
    docker
    java
    프로그래머스
    클린코드
    ElasticSearch
    이펙티브코틀린
    go
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[ELK] 엘라스틱서치 KEYWORD / TEXT 타입
상단으로

티스토리툴바