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

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

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

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

특정 값과 정확하게 일치하는 데이터를 조회하고 싶을 때 (term, terms)

JSCODE 박재성
JSCODE 박재성
1970. 01. 01.
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025 04:20 AM
isPublic
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
term-and-terms-search
type
post
updatedAt

✅ 특정 값과 정확하게 일치하는 데이터를 조회하고 싶을 때 (term)

  • term 쿼리는 특정 값과 정확히 일치하는 모든 도큐먼트를 조회한다.
  • term 쿼리는 text를 제외한 모든 타입에서 사용한다. (text 타입에서도 사용은 가능하나 의도대로 작동하지 않을 수 있어서 사용하지 않는 걸 권장한다.)
 
term 쿼리를 직접 사용해보자.
 
  1. 인덱스 생성 및 매핑 정의하기
    1. DELETE /boards PUT /boards { "mappings": { "properties": { "board_id": { "type": "long" }, "category": { "type": "keyword" } } } }
       
  1. 데이터 삽입하기
    1. POST /boards/_doc { "board_id": 1, "category": "자유 게시판" } POST /boards/_doc { "board_id": 2, "category": "익명 게시판" } POST /boards/_doc { "board_id": 3, "category": "광고 게시판" }
       
  1. 도큐먼트 검색해보기
    1. 데이터가 가진 값과 정확히 일치하게 검색하지 않으면 도큐먼트가 조회되지 않는다.
      GET /boards/_search { "query": { "term": { "category": "자유" } } } GET /boards/_search { "query": { "term": { "category": "자유게시판" } } } GET /boards/_search { "query": { "term": { "board_id": 13 } } }
       
      정확한 값으로 검색하면 도큐먼트가 잘 조회된다.
      GET /boards/_search { "query": { "term": { "category": "자유 게시판" } } } GET /boards/_search { "query": { "term": { "board_id": 1 } } }
      SQL문으로 표현하자면 아래와 같이 표현할 수 있다.
      → SELECT * FROM boards WHERE category = "자유 게시판"
      → SELECT * FROM boards WHERE board_id = 152
       
       

✅ 여러 개의 값 중 하나라도 일치하는 도큐먼트 조회 (terms)

  • terms 쿼리는 여러 개의 값 중 하나라도 일치하는 모든 도큐먼트를 조회한다.
  • SQL문의 IN과 비슷한 역할을 한다.
 
terms 쿼리를 직접 사용해보자.
 
SELECT * FROM boards WHERE category IN ("자유 게시판", "익명 게시판")처럼 category가 자유 게시판 또는 익명 게시판인 모든 데이터를 조회하고 싶다고 가정하자.
GET /boards/_search { "query": { "terms": { "category": ["자유 게시판", "익명 게시판"] } } }
 
 

✅ 여러 개의 조건을 동시에 만족하는 데이터를 조회하고 싶을 때

SELECT * FROM boards WHERE category = “자유 게시판” AND board_id = 1과 같이 2가지 이상의 조건을 활용해 검색하고 싶을 수도 있다. 아래와 같이 작성하면 되지 않을까라고 생각할 수 있다.
GET /boards/_search { "query": { "term": { "category": "자유 게시판", "board_id": 1 } } }
하지만 위와 같이 쿼리를 실행시켜보면 아래와 같이 에러가 발생한다.
notion image
 
👨🏻‍🏫
그럼 2가지 이상의 조건을 활용해서 데이터를 검색하고 싶을 때는 어떻게 쿼리를 작성해야 할까? 다음 강의에서 알아보자.
 
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025 03:54 AM
isPublic
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
type
series-footer
updatedAt
📎
이 글은 실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편) 강의의 수업 자료 중 일부입니다.