Hybrid Search

2026-04-07

개념

Hybrid Search는 벡터 검색(의미)과 키워드 검색(BM25 같은 정확한 단어 매칭)을 나란히 돌린 뒤 결과를 합치는 RAG 검색 전략이다. 두 방식이 서로의 약점을 보완한다.

왜 둘을 합치는가

벡터 검색의 약점

의미가 비슷한 걸 찾지만, 정확한 키워드를 놓칠 수 있다.

질문: "CORS"
벡터 검색: "브라우저 보안 정책" 노트가 먼저 나옴
정작 CORS.md는 밀림

고유명사, 약어, 제품 이름이 들어간 질문은 특히 취약하다.

키워드 검색의 약점

정확한 단어는 잘 찾지만, 의미가 같아도 단어가 다르면 못 찾는다.

질문: "브라우저에서 다른 도메인 요청이 왜 막히나"
키워드 검색: "CORS"라는 단어가 없어서 못 찾음
벡터 검색: CORS.md 찾아냄

동작 방식

질문 → 벡터 검색 (의미) → 후보 A
     → 키워드 검색 (단어) → 후보 B
     → A + B 합쳐서 점수 계산 → 최종 결과

둘 다 걸리는 문서가 순위가 올라간다.

RRF (Reciprocal Rank Fusion)

두 검색 결과의 순위를 합산하는 공식. 구현이 단순하면서 효과가 좋아서 Hybrid Search의 기본 fusion 방식으로 자리 잡았다.

벡터 검색: CORS.md(3등), BFF.md(1등), OAuth.md(2등)
키워드 검색: CORS.md(1등), XSS-CSRF.md(2등), OAuth.md(3등)

RRF 점수 = Σ 1/(순위 + k)   (k는 보통 60)

CORS.md:  1/(3+60) + 1/(1+60) = 0.0323  ← 둘 다 걸려서 1등
OAuth.md: 1/(2+60) + 1/(3+60) = 0.0320
BFF.md:   1/(1+60) + 0        = 0.0164
XSS-CSRF: 0        + 1/(2+60) = 0.0161
  • 점수 대신 순위만 쓰기 때문에 벡터 거리와 BM25 점수의 scale을 맞출 필요가 없음
  • 상수 k는 낮은 순위 차이의 영향을 완충하는 역할 (보통 60)

더 보기

  • [[RAG]] — 기본 파이프라인
  • [[RAG-한계와-보완]] — 왜 단일 검색으로 부족한가
  • [[Reranker]] — Hybrid Search 뒤에 2차 재평가 단계로 붙이면 정확도 추가 상승

Backlinks

sunshinemoon · 2026