DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 미리디
  • Related reads#OpenSearch
#Backend

AI 스타일 검색 2편 : 듀얼 벡터 검색과 OpenSearch 3.3 버전업

AI 스타일 검색 2편 : 듀얼 벡터 검색과 OpenSearch 3.3 버전업
01

Summary

검색 채택률 79% 달성! 미리캔버스의 듀얼 벡터 검색과 OpenSearch 3.3 전환기

단순 키워드 매칭을 넘어 의미와 스타일을 동시에 잡는 하이브리드 검색 최적화 전략

미리캔버스가 롱테일 검색어의 정확도를 획기적으로 높이기 위해 도입한 듀얼 벡터 검색 기술과 인프라 최적화 과정을 상세히 다룹니다. 특히 OpenSearch 3.3의 최신 기능을 활용하여 대규모 벡터 데이터 운영 시 발생하는 I/O 병목 문제를 어떻게 해결했는지에 대한 실질적인 가이드를 제공합니다.

  • 01시맨틱(의미)과 비주얼(스타일)을 결합한 듀얼 벡터 쿼리 설계 및 앙상블 스코어링
  • 02SigLIP 모델 도입을 통한 롱테일 쿼리 검색 품질 및 채택률 9%p 향상
  • 03CPU 부하가 아닌 OS 페이지 캐시 스래싱으로 인한 I/O 병목 현상 정밀 진단
  • 04OpenSearch 3.3의 'Derived Source' 기능을 활용한 벡터 데이터 저장 공간 및 I/O 최적화
  • 05Lucene 10.3 기반의 병렬 세그먼트 탐색으로 테일 레이턴시(Tail Latency) 85% 감축

+RECOMMENDATION

대규모 벡터 검색 엔진을 운영하며 성능 저하나 I/O 병목을 겪고 있는 엔지니어들에게 OpenSearch 3.3 업그레이드와 Derived Source 활용을 강력히 권장합니다.

The Problem

기존의 키워드 선필터링 방식은 등록되지 않은 검색어(롱테일 쿼리)에서 결과가 나오지 않거나, 정확도가 낮은 노이즈 키워드에 의존하여 검색 채택률이 정체되는 한계가 있었습니다.

The Solution

텍스트의 의미를 이해하는 SigLIP 시맨틱 벡터와 스타일을 담당하는 비주얼 벡터를 결합한 듀얼 벡터 검색을 도입하고, 메모리 최적화 인스턴스 전환 및 OpenSearch 3.3의 Derived Source 기능을 활용해 인프라 부하를 해결했습니다.

The Result

검색 채택률이 기존 대비 최대 17.38%p 상승하여 79% 수준을 유지하고 있으며, 평균 검색 레이턴시는 59% 개선되었고 고질적인 IOPS Throttling 문제를 완전히 해결했습니다.

Trade-off

듀얼 벡터 도입 초기에는 인덱스 크기 폭증으로 인해 OS 페이지 캐시 경합과 IOPS 폭증 현상이 발생했으며, vCPU 수를 줄이고 메모리를 늘리는 인스턴스 전략 수정을 통해 비용 효율성을 확보해야 했습니다.

03

Key Concepts

Concept · 01

Dual Vector Search

서로 다른 특성을 가진 두 개의 벡터(시맨틱 및 비주얼)를 하나의 검색 쿼리에서 동시에 사용하여 결과의 연관성을 극대화하는 방식입니다.

  • 의미를 찾는 SigLIP 벡터와 스타일을 찾는 비주얼 벡터를 결합하여 사용
  • 단일 벡터 검색보다 풍부한 후보군을 형성하여 검색 품질 개선
Concept · 02

Derived Source

OpenSearch 3.x에서 도입된 기능으로, 벡터 데이터를 _source 필드에 중복 저장하지 않고 벡터 인덱스에서 직접 데이터를 추출하는 기술입니다.

  • stored fields(.fdt)의 크기를 획기적으로 줄여 OS 페이지 캐시 효율 향상
  • 데이터 중복 제거를 통해 전체 스토리지 사용량 및 I/O 부하 감소
Concept · 03

Concurrent Segment Search

Lucene 엔진에서 여러 세그먼트를 병렬로 탐색하여 전체 검색 속도를 높이는 최적화 기법입니다.

  • 세그먼트 수가 많은 상황에서도 다중 스레드를 활용해 검색 레이턴시 단축
  • OpenSearch 3.3 및 Lucene 10.3 버전에서 기본 활성화되어 성능 향상 기여
Continue reading · same source

미리디More from 미리디

View all posts from 미리디
  • AI 잘 쓰는 사람의 노하우, 어떻게 팀 전체로 퍼질까?

    AI EnablementAXAI Native
    2일 전
  • 미리캔버스가 AI 3대로 해외 트렌드에서 진짜를 가려내는 법

    LLM AgentsMulti-Agent OrchestrationTrend Analysis
    1주 전
  • AI로 QA 업무를 자동화한 방법: n8n부터 E2E 테스트 자동화까지

    n8nE2E TestingLLM
    2주 전
  • 통합 검색 임베딩 모델 개발기: 9개 태스크를 고르게 학습시키기

    EmbeddingMulti-task LearningContrastive Learning
    2주 전
  • 데이터 요청 응대 30분을 3분으로 줄인 n8n AI 에이전트

    n8nAI AgentWorkflow Automation
    3주 전

Related reads#OpenSearch

Explore #OpenSearch
라인

일본어 상품 검색 정확도 높이기: Elasticsearch + Kuromoji에서 OpenSearch + Sudachi로

#OpenSearch1주 전
포스타입

포스타입이 개인화 추천을 하는 방법 2부

#OpenSearch3주 전
포스타입

포스타입이 개인화 추천을 하는 방법 1부

#OpenSearch3주 전
우아한형제들·AWS Bedrock

우아한공방의 새로운 동료, 시스템 맥락을 가진 챗봇서비스 개발기(feat. RAG)

#OpenSearch3개월 전
라인·Kafka

기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다

#OpenSearch5개월 전

Source

미리디
미리디
Engineering Blog

Published · June 16, 2026

Topics

OpenSearchSigLIPVector DatabasePerformance OptimizationLucene