피드로 돌아가기
From Elasticsearch Bottlenecks to Weaviate: How We Built Fast Hybrid Search in Production
Dev.toDev.to
Database

Elasticsearch 기반 Custom Score Fusion 한계를 Weaviate 전환으로 해결한 Hybrid Search 설계

From Elasticsearch Bottlenecks to Weaviate: How We Built Fast Hybrid Search in Production

amir2026년 6월 3일15intermediate

Context

BM25 기반 Lexical Search 중심의 Elasticsearch 아키텍처에서 Semantic Search 요구사항 증대로 인한 한계 직면. 서로 다른 스케일의 BM25 점수와 Cosine Similarity 점수를 결합하는 과정에서 연산 비용 증가 및 랭킹 불안정성 발생.

Technical Solution

  • 단순 키워드 매칭을 넘어 문맥적 의미를 파악하는 Vector Embedding 기반 Semantic Search 도입
  • BM25와 Vector Similarity의 서로 다른 Score Scale 문제를 해결하기 위한 Normalization 및 Weighting 로직 설계
  • Query Execution 단계의 Custom Scoring 스크립트 제거를 통한 CPU Spike 및 Tail Latency 억제
  • Native Vector Search 및 HNSW Indexing을 지원하는 Weaviate로 엔진을 교체하여 아키텍처 단순화
  • Metadata Filtering과 Hybrid Ranking이 통합된 엔진 채택으로 운영 복잡도 제거

- 서로 다른 랭킹 알고리즘의 점수를 합산할 때 Scale 차이에 따른 Normalization 전략을 수립했는가 - Query Time에 실행되는 Custom Scoring 로직이 p95/p99 Latency에 미치는 영향을 측정했는가 - 사용 사례가 Log/Observability 중심인지, Hybrid Semantic Search 중심인지에 따라 엔진을 선택했는가 - 검색 품질(Search Quality)을 단순 인프라 지표가 아닌 제품의 핵심 기능으로 정의하고 측정하고 있는가

원문 읽기