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

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

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

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

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

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

✅ 특정 값과 정확하게 일치하는 데이터를 조회하고 싶을 때 (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
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
type
series-footer
updatedAt
Dec 6, 2025 05:12 AM
📎
이 글은 실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편) 강의의 수업 자료 중 일부입니다.