JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[예제] filter와 must 구분해서 사용하기

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
example-filter-vs-must
type
post
updatedAt
Dec 6, 2025 04:48 AM

✅ filter와 must 구분해서 사용하기

[사전 셋팅]
// 기존 인덱스 삭제 DELETE /boards // 인덱스 생성 PUT /boards { "mappings": { "properties": { "board_id": { "type": "long" }, "title": { "type": "text", // 유연한 검색이 필요하므로 text 타입으로 선언 "analyzer": "nori" // 한글 데이터를 토큰으로 정확하게 나누기 위해 }, "category": { "type": "keyword" // 유연한 검색이 필요없으므로 keyword 타입으로 선언 }, "is_notice": { // (공지글 여부) "type": "boolean" }, "created_at": { "type": "date" } } } } // 데이터 삽입 POST /boards/_doc { "board_id": 1, "title": "엘라스틱서치는 정말 강력한 검색엔진이에요", "category": "자유 게시판", "is_notice": false, "created_at": "2025-05-01T12:00:00" }
 
 
[검색 쿼리 사용해보기]
자유 게시판의 게시글 중에서 검색엔진과 관련된 글을 찾고 싶다. 그런데 공지글이 아닌 게시글 중에서만 검색하고 싶다고 가정하자. 그럼 어떻게 검색 쿼리를 작성하면 될까?
GET /boards/_search { "query": { "bool": { "must": [ { "match": { "title": "검색엔진" } } // 유연한 검색이 필요 (must) ], "filter": [ { "term": { "category": "자유 게시판" } }, // 정확한 검색이 필요 (filter) { "term": { "is_notice": false } } // 정확한 검색이 필요 (filter) ] } } }
위와 같이 쿼리를 작성해야 용도에 맞게 잘 작성한 것이다. 실제 쿼리를 실행시켜봐도 원하는 값이 출력된다.
 
 
👨🏻‍🏫
지금까지 bool 쿼리 중 filter와 must에 대해 알아봤다. 다음 강의에서는 bool 쿼리의 must_not에 대해 알아보자.
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
type
series-footer
updatedAt
Dec 6, 2025 05:12 AM
📎
이 글은 실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편) 강의의 수업 자료 중 일부입니다.