본문 바로가기
WIKI 기술 지식 베이스

Searching vector data

원문 보기 위키 갱신

출처: 문서

본문

벡터 데이터 검색하기

OpenSearch는 벡터가 생성되고 인덱싱된 방식에 맞춘 다양한 벡터 데이터 검색 방법을 지원해요. 이 가이드에서는 Raw 벡터 검색과 자동 생성 임베딩 검색에 대한 쿼리 문법과 옵션을 설명해요.

검색 타입 비교

다음 표는 각 벡터 검색 방법의 검색 문법과 일반적인 사용 사례를 비교한 거예요.

기능 쿼리 타입 입력 형식 모델 필요 여부 사용 사례
Raw 벡터 knn 벡터 배열 아니요 Raw 벡터 검색
자동 생성 임베딩 neural 텍스트 또는 이미지 데이터 예 AI 검색

Raw 벡터 검색하기

Raw 벡터를 검색하려면 knn 쿼리 타입을 사용하고, 입력으로 vector 배열을 제공하고, 반환할 결과 개수인 k를 지정해요:

GET /my-raw-vector-index/_search
{
  "query": {
    "knn": {
      "my_vector": {
        "vector": [0.1, 0.2, 0.3],
        "k": 2
      }
    }
  }
}

{% include copy-curl.html %}

자동 생성 임베딩 검색하기

OpenSearch는 시맨틱 검색, 하이브리드 검색, 멀티모달 검색, 그리고 검색 증강 생성(RAG)이 결합된 대화형 검색을 포함한 AI 기반 검색 방법을 지원해요. 이 방법들은 쿼리 입력으로부터 임베딩을 자동으로 생성해요.

AI 기반 검색을 실행하려면 neural 쿼리 타입을 사용해요. query_text 입력값과, ingest pipeline에서 설정한 임베딩 모델의 모델 ID, 그리고 반환할 결과 개수인 k를 지정해요. 검색 결과에 임베딩이 반환되지 않도록 하려면 _source.excludes 파라미터에 임베딩 필드를 지정해요:

GET /my-ai-search-index/_search
{
  "_source": {
    "excludes": [
      "output_embedding"
    ]
  },
  "query": {
    "neural": {
      "output_embedding": {
        "query_text": "What is AI search?",
        "model_id": "mBGzipQB2gmRjlv_dOoB",
        "k": 2
      }
    }
  }
}

{% include copy-curl.html %}

스파스 벡터 다루기

OpenSearch는 스파스 벡터도 지원해요. 자세한 내용은 Neural sparse 검색을 참고하세요.

다음 단계

더 알아보기 (Learn more)