
단순 키워드 매칭을 넘어 의미와 스타일을 동시에 잡는 하이브리드 검색 최적화 전략
미리캔버스가 롱테일 검색어의 정확도를 획기적으로 높이기 위해 도입한 듀얼 벡터 검색 기술과 인프라 최적화 과정을 상세히 다룹니다. 특히 OpenSearch 3.3의 최신 기능을 활용하여 대규모 벡터 데이터 운영 시 발생하는 I/O 병목 문제를 어떻게 해결했는지에 대한 실질적인 가이드를 제공합니다.
대규모 벡터 검색 엔진을 운영하며 성능 저하나 I/O 병목을 겪고 있는 엔지니어들에게 OpenSearch 3.3 업그레이드와 Derived Source 활용을 강력히 권장합니다.
기존의 키워드 선필터링 방식은 등록되지 않은 검색어(롱테일 쿼리)에서 결과가 나오지 않거나, 정확도가 낮은 노이즈 키워드에 의존하여 검색 채택률이 정체되는 한계가 있었습니다.
텍스트의 의미를 이해하는 SigLIP 시맨틱 벡터와 스타일을 담당하는 비주얼 벡터를 결합한 듀얼 벡터 검색을 도입하고, 메모리 최적화 인스턴스 전환 및 OpenSearch 3.3의 Derived Source 기능을 활용해 인프라 부하를 해결했습니다.
검색 채택률이 기존 대비 최대 17.38%p 상승하여 79% 수준을 유지하고 있으며, 평균 검색 레이턴시는 59% 개선되었고 고질적인 IOPS Throttling 문제를 완전히 해결했습니다.
Trade-off
듀얼 벡터 도입 초기에는 인덱스 크기 폭증으로 인해 OS 페이지 캐시 경합과 IOPS 폭증 현상이 발생했으며, vCPU 수를 줄이고 메모리를 늘리는 인스턴스 전략 수정을 통해 비용 효율성을 확보해야 했습니다.
서로 다른 특성을 가진 두 개의 벡터(시맨틱 및 비주얼)를 하나의 검색 쿼리에서 동시에 사용하여 결과의 연관성을 극대화하는 방식입니다.
OpenSearch 3.x에서 도입된 기능으로, 벡터 데이터를 _source 필드에 중복 저장하지 않고 벡터 인덱스에서 직접 데이터를 추출하는 기술입니다.
Lucene 엔진에서 여러 세그먼트를 병렬로 탐색하여 전체 검색 속도를 높이는 최적화 기법입니다.









