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

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

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

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

Metadata Filters란 무엇일까?

JSCODE 시니
JSCODE 시니
2026. 06. 13.
author
JSCODE 시니
category
Spring AI
createdAt
Jun 13, 2026 09:52 AM
isPublic
isPublic
series
실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
slug
understanding-metadata-filters-in-vector-store
type
post
updatedAt

✅ 1. Metadata Filters란 무엇일까?

  • Vector DB에서 유사도 검색을 할 때, 단순히 의미(벡터)만 비슷한 문서를 찾는 것이 아니라 우리가 원하는 특정 조건(메타데이터)에 맞는 문서들 속에서만 유사도를 검색하도록 대상을 좁혀주는 기능
 
 
 

✅ 2. 필터링 조건 지정 방법

  • Spring AI는 Filter.Expression 객체를 사용해 조건을 지정함
  • SQL의 WHERE 절과 거의 똑같은 문자열 문법을 지원하기 때문에 매우 직관적임
  • 지원하는 연산자
    • 관계형 DB(RDB)에서 쿼리를 짤 때 쓰는 연산자들을 그대로 사용할 수 있음
    • 비교 연산자: ==, !=, >, <, >=, <=
    • 포함 연산자: IN
    • 논리 연산자: AND (&&), OR (||)
 
 
 

✅ 3. 실무 활용 예시

  • 단순한 검색을 넘어, 엔터프라이즈급 AI 서비스를 만들 때 Metadata Filter는 다음과 같은 상황에서 필수적으로 사용됨
  • 버전 관리
    • 서비스 매뉴얼이나 API 문서가 v1.0, v2.0으로 업데이트될 때 사용
    • 구버전 문서를 DB에서 삭제하지 않고 남겨두더라도 검색 시 "version == 'v2.0'" 조건을 걸어 AI가 항상 최신 규정만 보고 답변하도록 제어 가능
  • 날짜 관리
    • 사내 뉴스나 공지사항을 기반으로 답변하는 챗봇을 만들 때, "createdAt >= '2026-01-01'"처럼 특정 기간 필터를 걸어 과거의 잘못된 정보가 섞여 들어오는 것을 원천 차단
  • 사용자 권한 제어
    • 내 메신저 봇에서 "department == 'HR'" 조건을 걸어, 인사팀 직원들에게만 민감한 인사 규정 문서가 검색되도록 보안 필터링 적용 가능