Skip to content
SON BLOG
Go back

OpenSearch 벡터 검색 성능 최적화 가이드

Edit page

OpenSearch에서 벡터 기반 검색을 빠르게 처리하기 위해서는 쿼리 처리 비용을 줄이고, 캐시를 적극 활용하며, 네트워크 전송량을 최소화하는 것이 중요합니다. 다음은 주요 성능 향상 전략이다.

1. 세그먼트 수 줄이기 (Reduce Segment Count)

PUT /<index_name>/_settings
{
  "index": {
    "refresh_interval": "-1"
  }
}

2. 인덱스 예열 (Warm up the Index)

Warmup API 사용

GET /_plugins/_knn/warmup/index1,index2,index3?pretty

3. Stored Fields 비활용 (불필요한 데이터 읽기 최소화)

문서 내용이 필요 없는 경우

GET /my-index/_search
{
  "_source": false,
  "query": {
    "knn": {
      "vector_field": {
        "vector": [0.1, 0.2, 0.3],
        "k": 10
      }
    }
  }
}

4. 벡터 필드만 제외 (Vector 제외, 다른 필드는 유지)

GET /my-index/_search
{
  "_source": {
    "excludes": [
      "vector_field"
    ]
  },
  "query": {
    "knn": {
      "vector_field": {
        "vector": [0.1, 0.2, 0.3],
        "k": 10
      }
    }
  }
}

요약: 성능 향상 체크리스트

항목설명
세그먼트 수 최소화색인 중 refresh 비활성화로 세그먼트 병합 유도
Warmup API 사용첫 쿼리 지연 방지, 메모리 캐시 사전 로딩
_source: falseID와 점수만 필요한 경우
_source.excludes벡터 필드만 제외하고 나머지 정보 유지

Edit page
Share this post:

Previous Post
KoBERT: 한국어 BERT 모델 소개와 파인튜닝 예제
Next Post
OpenSearch UBI Schema — 사용자 행동 데이터 구조화와 검색 활용