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 |