Docs Menu
Docs Home
/ /

Vector Search 쿼리 실행

MongoDB Vector Search 쿼리 를 첫 번째 단계로 사용하는 집계 파이프라인 의 $vectorSearch 형태를 취합니다. 이 페이지에서는 단계의 구문, 옵션 및 동작에 대해 설명합니다.$vectorSearch

$vectorSearch

$vectorSearch 단계에서는 다음 필드가 있는 문서를 사용합니다.

$vectorSearch 단계를 exact 정의할 때 필드 사용하여 ANN 또는 ENN 검색 실행 할지 여부를 지정할 수 있습니다.

$vectorSearch 표시되는 파이프라인의 첫 번째 단계에 있어야 합니다.

$vectorSearch보기 정의 및 다음 파이프라인 단계에서 사용할 수 없습니다.

  • $lookup 하위 파이프라인 [1]

  • $facet 파이프라인 단계

[1] $vectorSearch 의 결과를 이 단계로 전달할 수 있습니다.

이러한 MongoDB 벡터 검색 필드 유형에 대해 자세히 학습하려면 벡터 검색을 위해 필드를 인덱싱하는 방법을 참조하세요.

MongoDB Vector Search는 반환하는 모든 문서 에 0 ~ 1 (여기서 0 는 낮은 유사성을 나타내고 1 은 높은 유사성을 나타냅니다)까지 고정된 범위 의 점수를 할당합니다.

반환된 각 문서 점수가 메타데이터 로 포함됩니다. 각 문서의 점수를 결과 세트와 함께 반환하려면 집계 파이프라인에서 $project 단계를 사용하고 score 를 프로젝트할 필드로 구성합니다. score 필드에 vectorSearchScore 값을 사용하여 $meta 표현식을 지정합니다. 구문은 다음과 같습니다.

1db.<collection>.aggregate([
2 {
3 "$vectorSearch": {
4 <query-syntax>
5 }
6 },
7 {
8 "$project": {
9 "<field-to-include>": 1,
10 "<field-to-exclude>": 0,
11 "score": { "$meta": "vectorSearchScore" }
12 }
13 }
14])

참고

파이프라인 단계 이후에만 $vectorSearch $meta 표현식 으로 사용할 수 vectorSearchScore 있습니다.score 다른 쿼리 뒤에 vectorSearchScore 를 사용하면 MongoDB MongoDB v8.2부터 경고를 기록합니다.

참고

데이터를 사전 필터링해도 MongoDB Vector Search가 $vectorSearch 쿼리에 대해 vectorSearchScore 를 사용하여 반환하는 점수에는 영향을 주지 않습니다.

$vectorSearch filter 옵션은 BSON 불리언, 날짜, objectId, 숫자, string 및 UUID 값과 일치하며, 이러한 유형의 배열도 포함됩니다.

데이터 필터링에 사용할 필드를 반드시 vectorSearch 유형 인덱스 정의의 필터 유형으로 인덱싱해야 합니다. 데이터 필터링은 시맨틱 검색의 범위를 좁히고 일부 벡터가 비교 대상으로 고려되지 않도록 하는 데 유용합니다.

MongoDB Vector Search는 $vectorSearch filter 다음 MQL 연산자에 대해 옵션을 지원합니다.

유형
MQL 연산자

동등성

범위

집합 내

존재

논리

참고

$vectorSearch filter 옵션은 다른 쿼리 연산자, 집계 파이프라인 연산자 또는 MongoDB Search 연산자를 지원하지 않습니다.

  • MongoDB Vector Search는 $eq의 짧은 형식을 지원합니다. 짧은 형식에서는 쿼리 에 $eq 을(를) 지정할 필요가 없습니다.

    예를 들어, $eq가 포함된 다음 필터를 가정하겠습니다.

    "filter": { "_id": { "$eq": ObjectId("5a9427648b0beebeb69537a5") }

    이는 $eq의 짧은 형식을 사용하는 다음 필터와 동일합니다.

    "filter": { "_id": ObjectId("5a9427648b0beebeb69537a5") }
  • $and MQL 연산자 사용하여 단일 쿼리 에서 필터 배열 을 지정할 수 있습니다.

    예를 들어 genres 필드가 Action이고 year 필드가 1999, 2000 또는 2001인 문서에 대해 다음과 같은 사전 필터를 사용한다고 가정해 보겠습니다.

    "filter": {
    "$and": [
    { "genres": "Action" },
    { "year": { "$in": [ 1999, 2000, 2001 ] } }
    ]
    }
  • 퍼지 검색, 구문 일치, 위치 필터 및 기타 분석된 텍스트와 같은 고급 필터링 역량의 경우 단계에서 $search vectorSearch 연산자를 사용합니다.

이 예시를 실행하기 전에 다음 작업을 수행하세요.

참고

mongosh를 사용하는 경우 샘플 코드의 queryVector를 터미널에 붙여넣는 것은 컴퓨터에 따라 시간이 걸릴 수 있습니다.

돌아가기

인덱스 참조

스킬 배지 획득

무료로 '벡터 검색 기초'를 마스터하세요!

자세한 내용을 알아보세요.

이 페이지의 내용