특정 조건을 만족하는 데이터 위주로 상위 노출 시키고 싶을 때 (bool : should)
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
bool-should-search
type
post
updatedAt
Dec 6, 2025 04:48 AM
✅ bool 쿼리의 should는 언제 어떻게 쓰일까?
bool 쿼리에서 must와 filter는 반드시 조건을 만족하는 데이터만 조회되지만, should는 조건을 만족하지 않는 데이터도 조회되기도 한다. 다만, should의 조건을 충족시키는 데이터일 경우 score(점수)에 가산점을 부여해 상위 노출될 가능성이 높아진다. 그래서 must, filter는 ‘무조건’의 느낌이지만 should는 ‘있으면 좋고, 아니면 말고’의 느낌이다.
그럼 should는 언제 쓸까?
실제 우리가 사용하고 있는 많은 서비스에서 should 기능이 많이 활용되고 있다. 여러 예시를 살펴보자.
[사례 1]
고객이 쇼핑몰에서 "노트북"을 검색했을 때, 우리는 다음 조건을 만족하는 상품을 상위에 노출시키고 싶은 경우
최근 출시된 제품
평점이 높은 제품
특정 브랜드(예: Apple)
하지만, 이 조건을 필수로 강제하진 않고 만족하면 가산점을 부여하기
[사례 2]
사용자가 “백엔드 개발자”를 검색했을 때, 우리는 다음 조건을 만족하는 공고를 더 상위에 노출시키고 싶은 경우
원격 근무 가능
연봉 6,000만 원 이상
유명 기업(예: 네이버, 카카오, 당근)
이 조건은 필수는 아니고, 만족하면 더 매력적인 공고이므로 should로 가산점만 줍니다.
[사례 3]
사용자가 네이버에서 "챗GPT"로 블로그를 검색했을 때, 우리는 다음 조건을 만족하는 글을 더 상위에 노출시키고 싶은 경우