Highlight

Highlight 카테고리의 모든 포스트 - 한국어

1개의 포스트

✨ 검색어 하이라이팅 기능

이 문서는 Elasticsearch에서 검색어가 포함된 부분을 강조(하이라이트)해서 반환하는 기능을 설명합니다.
기본 <em> 태그를 사용하며, 다양한 하이라이터 설정도 가능합니다.


✅ 1. highlight란?

검색 결과에서 사용자가 입력한 검색어가 일치한 부분을
특정 태그로 감싸서 강조 표시할 수 있는 기능입니다.


🛠️ 2. 기본 highlight 쿼리 예시

{
  "query": {
    "match": {
      "content": "카카오"
    }
  },
  "highlight": {
    "fields": {
      "content": {}
    }
  }
}

반환 예시:

"highlight": {
  "content": [
    "이번 주 <em>카카오</em> 주식이 급등했다."
  ]
}

🎨 3. 태그 커스터마이징

"highlight": {
  "pre_tags": ["<strong>"],
  "post_tags": ["</strong>"],
  "fields": {
    "content": {}
  }
}
  • <em> 대신 <strong>, <mark> 등 원하는 HTML 태그로 감쌀 수 있음

✂️ 4. fragment_size, number_of_fragments

"highlight": {
  "fields": {
    "content": {
      "fragment_size": 100,
      "number_of_fragments": 2
    }
  }
}
설정 항목설명
fragment_size각 조각의 최대 길이 (문자 수 기준)
number_of_fragments최대 반환 조각 수

🧠 5. highlighter 종류

타입설명
unified기본값, 대부분의 경우 추천
plain빠르지만 기능 제한
fvh (Fast Vector Highlighter)빠르고 정밀한 하이라이팅 (필드에 term_vector 필요)
"highlight": {
  "type": "unified",
  "fields": {
    "content": {}
  }
}

✅ 요약

항목설명
기본 태그<em>으로 감싸서 강조
커스터마이징 가능<strong>, <mark> 등 HTML 태그 지정 가능
조각 길이 조절fragment_size, number_of_fragments
하이라이터 선택 옵션unified, plain, fvh