문서 메뉴
문서 홈
/
MongoDB Atlas
/ /

하이브리드 검색을 수행하는 방법

이 페이지의 내용

  • 전제 조건
  • Atlas Vector Search 및 Atlas Search 인덱스 만들기
  • 필요한 액세스 권한
  • 절차
  • 결합된 시맨틱 검색 및 전체 텍스트 검색 쿼리 실행
  • 쿼리 정보
  • 절차
  • 보면서 배우기

이 튜토리얼에서는 상호 순위 통합을 사용하여 $vectorSearch 쿼리의 시맨틱 검색 결과를 $search 쿼리의 전체 텍스트 검색 결과와 결합하는 방법을 보여 줍니다. 상호 순위 통합은 다양한 유형의 검색 결과를 단일 결과로 결합하는 방법입니다. 이 튜토리얼에서는 다음 단계를 안내합니다.

  1. sample_mflix.embedded_movies collection의 plot_embeddings 필드에 Atlas Vector Search 인덱스를 만듭니다.

  2. sample_mflix.embedded_movies collection의 title 필드에 Atlas Search 검색 인덱스를 생성합니다.

  3. 상호 순위 통합을 사용하여 sample_mflix.embedded_movies 컬렉션의 plot_embeddings 필드에 대한 $vectorSearch 쿼리를 title 필드에 대한 $search 쿼리와 결합하고 실행합니다.

시작하기 전에 Atlas cluster가 필수구성 요소에 설명된 요건을 충족하는지 확인하십시오.

참고

Atlas cluster에 Atlas Search와 Atlas Vector Search 인덱스를 모두 저장하고 성능이 뛰어난 쿼리를 실행할 수 있는 충분한 메모리가 있는지 확인하세요.

이 섹션에서는 sample_mflix.embedded_movies collection의 필드에 다음 인덱스를 생성하는 방법을 보여 줍니다.

  • 해당 필드에 대해 벡터 쿼리를 실행하기 위한 plot_embeddings 필드에 대한 Atlas Vector Search 인덱스입니다.

  • 해당 필드에 대해 전체 텍스트 검색을 실행하기 위한 title 필드에 대한 Atlas Search 검색 인덱스입니다.

Atlas Vector Search 및 Atlas Search 인덱스를 생성하려면 프로젝트에 대해 최소 Project Data Access Admin 액세스 권한이 있어야 합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Clusters 페이지가 아직 표시되지 않은 경우 사이드바에서 Database를 클릭합니다.

2
  1. 클러스터 이름을 클릭합니다.

  2. Atlas Search 탭을 클릭합니다.

3
  1. Atlas Search Services 탐색 표시줄의 아래에 있는 을 클릭합니다.

  2. Select data source 드롭다운에서 cluster를 선택하고 Go to Atlas Search 을 클릭합니다.

4
  1. Create Search Index를 클릭합니다.

  2. Atlas Vector Search 아래에서 JSON Editor 을 선택한 다음 Next 를 클릭합니다.

  3. Database and Collection 섹션에서 sample_mflix 데이터베이스를 찾고 embedded_movies 컬렉션을 선택합니다.

  4. Index Name 필드에 rrf-vector-search를 입력합니다.

  5. 기본 정의를 다음 인덱스 정의로 바꾼 다음 Next 을 클릭합니다.

5
  1. 기본 정의를 다음 인덱스 정의로 바꿉니다.

    이 인덱스 정의는 plot_embedding 필드를 벡터 유형으로 인덱싱합니다. plot_embedding 필드에는 OpenAI의 text-embedding-ada-002 임베딩 모델을 사용하여 생성된 임베딩이 포함되어 있습니다. 인덱스 정의는 1536 벡터 차원을 지정하고 euclidean 을 사용하여 유사성을 측정합니다.

    1{
    2 "fields": [
    3 {
    4 "type": "vector",
    5 "path": "plot_embedding",
    6 "numDimensions": 1536,
    7 "similarity": "euclidean"
    8 }
    9 ]
    10}
6

인덱스가 작성 중임을 보여주는 모달 창이 표시됩니다.

7

인덱스를 빌드하는 데 약 1분 정도 걸립니다. 빌드되는 동안 Status 열은 Initial Sync 을 읽습니다. 빌드가 완료되면 Status 열에 Active 이 표시됩니다.

8
9
  • 안내를 따라 진행하고자 할 때는 Atlas Search Visual Editor를 선택합니다.

  • 원시 인덱스 정의를 편집하고 싶다면, Atlas Search JSON Editor을 선택합니다.

10
  1. Index Name 필드에 rrf-full-text-search를 입력합니다.

    참고

    인덱스 이름을 default으로 지정하면 $search 파이프라인 단계를 사용할 때 index 매개 변수를 지정할 필요가 없습니다. 그렇지 않으면 index 매개 변수를 사용하여 인덱스 이름을 지정해야 합니다.

  2. Database and Collection 섹션에서 sample_mflix 데이터베이스를 찾고 embedded_movies 컬렉션을 선택합니다.

11

다음 인덱스 정의는 필드를 쿼리하기 위한 문자열 유형으로 title 필드를 인덱싱합니다.

Atlas 사용자 인터페이스에서 Atlas Search Visual Editor 또는 Atlas Search JSON Editor를 사용하여 인덱스를 생성할 수 있습니다.

12

인덱스가 작성 중임을 보여주는 모달 창이 표시됩니다.

13

인덱스 작성에는 약 1분 정도가 소요됩니다. 작성하는 동안 Status 열은 Initial Sync을 읽습니다. 작성이 완료되면 Status 열에 Active이 표시됩니다.

이 섹션에서는 $vectorSearch$search 파이프라인 단계를 사용하여 sample_mflix.embedded_movies collection의 데이터를 쿼리하고 두 단계의 각 문서 점수를 결합하여 결과에서 문서를 다시 정렬하는 방법을 보여 줍니다. 이렇게 하면 두 검색에 모두 나타나는 문서가 결합된 결과의 상단에 표시됩니다.

다음 쿼리는 시맨틱 검색 및 전체 텍스트 검색에서 정렬된 검색 결과를 조회하고, 결과 배열에서의 문서 위치에 따라 결과 내 문서에 상호 순위 점수를 할당합니다. 상호 순위 점수는 다음 공식을 사용하여 계산됩니다.

1.0/{document position in the results + vector or full-text penalty + constant value}

그런 다음 쿼리는 각 문서에 대한 두 검색의 점수를 더하고, 합산된 점수를 기준으로 문서의 순위를 지정한 다음, 문서를 정렬하여 단일 결과를 반환합니다.

샘플 쿼리는 점수에 가중치를 추가하기 위해 다음 변수를 정의하며, 숫자가 작을수록 가중치가 높습니다.

  • vector_penalty

  • full_text_penalty

샘플 쿼리는 다음 파이프라인 단계를 사용합니다:

  • $vectorSearch 단계에서 쿼리의 queryVector 필드에서 벡터 임베딩으로 지정된 문자열 뉴욕plot_embeddings 필드에서 검색합니다. 이 쿼리는 plot_embedding 필드의 벡터 임베딩과 동일한 ada-002-text 임베딩을 사용합니다. 또한 이 쿼리는 최대 100 가장 가까운 이웃에 대한 검색을 지정하고 결과를 20 문서로 제한합니다. 이 단계에서는 시맨틱 검색에서 정렬된 문서를 결과로 반환합니다.

  • $group 단계를 사용하여 docs 라는 필드에서 시맨틱 검색 결과의 모든 문서를 그룹화합니다.

  • $unwind 단계를 사용하여 docs rank 에 저장합니다.

  • $addFields 단계에서 결과의 각 문서에 대한 상호 순위 점수를 포함하는 vs_score 라는 새 필드를 추가합니다. 여기서 역순위 점수는 1.0rank, vector_penalty 가중치, 1 의 상수 값의 합으로 나누어 계산합니다.

  • $project 단계에서 결과에 다음 필드만 포함할 수 있습니다.

    • vs_score

    • _id

    • title

  • $unionWith 단계를 사용하여 이전 단계의 결과와 하위 파이프라인에 있는 다음 단계의 결과를 결합합니다.

    • $search 단계를 사용하여 title 필드에 new york 이라는 텀이 포함된 영화를 검색합니다. 이 단계에서는 Full Text Search에서 정렬된 문서를 결과로 반환합니다.

    • $limit 단계를 사용하여 출력을 20 결과로만 제한합니다.

    • $group 단계를 사용하여 docs 라는 필드에서 전체 텍스트 검색의 모든 문서를 그룹화합니다.

    • $unwind 단계를 사용하여 docs rank 에 저장합니다.

    • $addFields 단계에서 결과의 각 문서에 대한 상호 순위 점수를 포함하는 fts_score 라는 새 필드를 추가합니다. 여기서 역순위 점수는 1.0rank 값, full_text penalty 가중치, 1 상수 값의 합계로 나누어 계산합니다.

    • $project 단계에서 결과에 다음 필드만 포함할 수 있습니다.

      • fts_score

      • _id

      • title

  • $group 단계를 사용하여 이전 단계의 결과에 있는 문서를 title, vs_scorefts_score 로 그룹화합니다.

  • $project 단계에서 결과에 다음 필드만 포함할 수 있습니다.

    • vs_score

    • fts_score

    • _id

    • title

  • $project 단계에서 vs_scorefts_score 의 합계를 포함하는 score 라는 필드를 결과에 추가합니다.

  • $sort 단계를 사용하여 결과를 score 를 기준으로 내림차순으로 정렬합니다.

  • $limit 단계를 사용하여 출력을 10 결과로만 제한합니다.

1

터미널 창에서 mongosh 를 열고 클러스터에 연결합니다. 연결에 대한 자세한 지침은 mongosh 를 통한 연결을 참조하세요.

2

mongosh 프롬프트에서 다음 명령을 실행합니다.

use sample_mflix
switched to db sample_mflix
3
1var vector_penalty = 1;
2var full_text_penalty = 10;
3db.embedded_movies.aggregate([
4 {
5 "$vectorSearch": {
6 "index": "rrf-vector-search",
7 "path": "plot_embedding",
8 "queryVector": [-0.0105516575,-0.014830452,0.008882049,-0.04193625,-0.025848519,-0.0006020224,-0.026200015,0.013458264,-0.022779683,-0.036366377,0.021887423,0.0011533482,0.0037211322,0.005840251,-0.010822039,-0.012261824,0.020400321,-0.019994749,0.017236853,-0.011132979,-0.008084422,0.028200842,-0.009963577,-0.014384322,0.00086311,0.0014938605,-0.0019332313,-0.01080852,0.0029556132,-0.01561456,0.013803001,-0.017223334,-0.028714567,-0.02417215,0.006715613,-0.007165123,-0.010727406,-0.012491648,0.007300314,-0.00210053,0.010531379,-0.03139135,-0.0036569166,-0.006577042,-0.026957085,0.010260996,-0.0135393785,-0.006401294,-0.024239747,0.0108896345,0.017223334,0.021508887,-0.013938192,0.0022576896,-0.03187804,0.005735478,-0.02148185,-0.0045559364,-0.011396601,0.00010197415,-0.007435505,-0.018426534,-0.018859144,0.029687943,0.0009699954,-0.024253266,-0.005272449,0.012667396,0.003501447,0.01593902,0.032256573,-0.005002067,0.0037650694,-0.00025200448,0.013525859,-0.00007509437,-0.013613733,0.012620079,-0.0013265617,0.010173122,0.012795828,-0.043423347,-0.025159044,0.026172977,0.018318381,0.011937365,-0.032986604,0.018588763,-0.00857111,-0.005691541,0.021252025,0.02146833,0.026091862,0.0016290515,-0.035987843,0.03228361,-0.012511927,0.034906317,-0.0150062,-0.005752377,0.0064181928,-0.01126141,-0.0030079996,-0.023834173,-0.0045086197,0.00857111,-0.018047998,-0.02898495,0.013444745,-0.017250372,-0.01321492,0.016912393,0.009395774,-0.0405573,-0.007976269,-0.025726847,0.009943298,-0.010686848,-0.028552338,-0.037934594,0.008152017,0.008381842,0.014925086,-0.024753472,0.041828096,0.00078875496,0.00059991004,-0.006746031,-0.013688088,-0.005225132,0.019021373,-0.0012057347,0.004718166,0.006803487,-0.020292168,0.019170083,-0.03139135,0.009679675,-0.02359083,-0.03455482,0.0046640895,0.029796096,-0.004910813,0.01666905,-0.006272862,0.015357697,0.015830865,0.0130864885,0.008577869,-0.018710434,0.007415226,-0.018642839,0.008915846,0.0051947143,-0.007530139,0.024712915,0.0025449705,0.004640431,0.0078005204,0.011748098,-0.006262723,-0.010855837,0.027551925,-0.03122912,0.014384322,0.017764097,0.016209401,0.005542831,0.014911567,-0.0060768356,0.0015090695,0.030769471,-0.0141544975,0.014938605,0.015236026,0.017669464,0.014046345,0.02146833,-0.016642012,0.00039923593,0.0043362514,0.015587522,0.015519926,0.0381509,-0.0014980852,0.0055056536,0.020630145,-0.017399082,-0.00039754604,-0.018075036,-0.0077261655,0.01816967,0.02041384,-0.008422399,-0.67098,-0.015722713,-0.004549177,-0.006590561,0.018507648,0.012951298,0.019143045,0.007117806,-0.023158219,-0.011356044,-0.013573176,0.0037312715,0.013458264,-0.01785873,-0.01457359,-0.0046235323,0.021671116,-0.008131739,-0.020927567,0.009395774,-0.017155739,0.0016712988,-0.009389015,-0.0019264717,0.017412601,0.008848251,-0.0009801347,-0.008679262,-0.011957644,0.0022948673,-0.043612614,0.012342938,0.023212295,-0.01729093,0.04853357,-0.0012657257,-0.0342574,-0.00240133,0.029011989,0.015952539,-0.0018605661,-0.0021596763,0.012762031,-0.0061917477,0.0020768717,0.0056983004,0.020616626,-0.004532278,0.005718579,0.005752377,0.01996771,0.0026379144,-0.022117248,-0.0073679094,0.01623644,-0.003994894,0.009253824,-0.01638515,0.01757483,0.0017946605,-0.0018487369,-0.008550831,-0.030715395,-0.0131743625,-0.015533445,0.0061816084,-0.007820799,0.0009480269,-0.00051710557,-0.011876529,-0.0007722786,0.034960393,-0.017182777,0.0049953074,0.012430812,0.027430253,0.011139738,-0.00083142467,0.005076422,-0.009956817,0.019994749,0.010490822,-0.017926326,0.017385563,0.01157235,-0.019332312,-0.02928237,0.0062694824,-0.00058385613,-0.0024892043,0.00840888,0.015411774,-0.017966883,-0.014708781,-0.0070840083,0.0053400444,0.009585042,0.010037932,0.015425293,-0.007070489,-0.0039272984,-0.022563377,-0.0069893748,0.0020025168,0.0013054381,0.0038225255,0.009618839,0.010416467,0.029093103,-0.038394243,0.009247065,-0.015695674,-0.04307185,-0.01396523,0.025794443,-0.031769883,0.028714567,0.0016324313,0.01246461,-0.011971163,0.0060903546,-0.013106767,0.01742612,-0.018805068,0.010734165,0.017155739,0.014492475,-0.021197949,-0.018467091,0.005089941,-0.010423226,0.020846453,0.017358525,-0.008138498,0.01757483,0.0057084397,0.009733752,-0.010923433,-0.004157123,-0.024658838,-0.025253678,-0.0015673706,-0.00871982,-0.0155469645,-0.0049513704,-0.024658838,-0.01665553,-0.016871836,-0.041584753,0.012667396,-0.01800744,-0.021252025,-0.036771953,0.011018067,-0.011132979,-0.019494543,-0.0009497168,-0.024848105,0.012180709,0.00105111,0.01849413,0.026930047,-0.03290549,-0.00886177,0.018210227,-0.011626426,0.023658425,0.019819,-0.0022188223,-0.017061103,0.003680575,-0.005360323,0.006688575,0.006928539,0.023090623,0.019170083,-0.004975029,0.0027849346,-0.002884638,-0.00033164042,-0.00069031905,-0.015100835,-0.013992269,0.0069893748,-0.0011372942,-0.00006242022,0.008300727,0.02252282,-0.021454811,0.0026801615,-0.021846866,0.01065981,-0.02148185,0.009618839,-0.010943712,-0.009558003,0.00780728,0.012160431,0.0018842246,0.022198362,0.033121794,-0.022414668,0.004042211,-0.0019535099,-0.020859972,-0.029498676,0.010132565,-0.018994335,0.0146817425,0.0028694288,0.016777202,-0.023793615,0.008577869,0.0062694824,0.027714156,0.049209524,-0.019102488,0.0042111995,0.008280449,0.015668636,-0.010795001,-0.027565444,-0.0004302876,0.009639118,-0.01396523,0.013884116,0.01051786,0.029796096,0.0072529973,-0.021062758,-0.021873904,0.0051947143,0.0053265253,0.0074287453,-0.018561725,-0.0062356847,0.002435128,-0.029660905,0.02223892,-0.007888394,0.015263064,-0.008882049,0.03531189,0.00062990555,0.002029555,0.0035927007,0.03406813,0.006472269,-0.02118443,0.028173804,-0.012843145,-0.010423226,-0.01232266,-0.014560071,0.010632772,-0.011396601,0.019318793,-0.01576327,0.015384736,0.030174632,0.003364566,-0.006550004,0.017939845,-0.0012961437,0.0022002335,-0.012059037,0.027565444,-0.0069488175,-0.0030536267,0.007719406,-0.003707613,-0.00097084034,0.034446668,-0.013681329,0.01320816,-0.034527782,-0.0060159992,-0.016398668,-0.0010604043,0.0000769955,-0.013154084,-0.02928237,0.016317554,0.015857903,-0.015141392,-0.01680424,0.003829285,-0.004326112,-0.0034811683,0.060187034,0.008503513,0.026808375,-0.00065863365,-0.008996961,-0.0013899325,0.00043641345,0.03587969,-0.015330659,0.004988548,-0.026078343,0.0077532036,-0.006249204,-0.025632214,0.0039712354,0.03471705,0.008530552,0.013715127,-0.0089564035,-0.0022188223,-0.008604907,-0.001997447,0.0010468853,-0.006789968,-0.0007300314,-0.011748098,-0.018210227,-0.009287622,0.009672916,0.008740098,-0.010544898,-0.005786175,-0.03204027,-0.018223746,-0.01653386,0.091929875,-0.0019585795,-0.00009811909,0.015709193,0.015830865,-0.0034591996,-0.010315073,0.0025280716,0.01622292,-0.010429986,0.01607421,-0.029471638,0.021441292,0.0054955143,-0.012532205,-0.0016417257,-0.0033814649,-0.020062344,0.014762857,-0.009895981,-0.0018250785,-0.005029105,0.015817346,0.039692078,-0.004549177,0.004910813,0.038799815,0.007415226,0.010443505,-0.016425706,-0.011470956,0.017250372,0.008043865,0.016439226,-0.0024266783,-0.013397428,0.022603935,0.0026649525,0.008976682,-0.007029932,0.022630973,-0.0013341662,0.0014820313,-0.02822788,0.0195351,-0.004988548,-0.0285253,0.008300727,-0.01785873,-0.007043451,0.049155448,-0.0036535368,-0.008043865,-0.0060497974,-0.004897294,0.012329419,-0.015871422,-0.035690423,0.002342184,-0.002359083,-0.012822866,-0.033256985,-0.00021609435,-0.005752377,-0.018223746,-0.028714567,-0.016006615,0.0034913076,-0.037474945,-0.014032826,0.010828799,-0.019994749,-0.0047114063,-0.0043193526,0.021089796,-0.022482263,0.012410534,0.01320816,0.020332726,0.02117091,0.001982238,-0.031742845,0.005363703,0.008104701,0.004086148,0.017615387,0.026470397,-0.033743672,-0.0021360177,0.022265958,0.0060430374,0.00040155952,0.016195882,0.014330246,0.005887568,-0.028795682,0.011227612,0.022252439,0.0020768717,-0.03360848,0.016696088,-0.017547792,0.006357357,-0.00705697,0.016628493,0.025172563,0.008523792,0.021400735,-0.032499917,-0.0069893748,0.034635935,-0.028038613,0.011484475,0.019737886,-0.015114354,0.023036547,0.005904467,0.015479369,-0.006144431,-0.0057794154,0.021887423,-0.04323408,0.0037346513,0.03049909,0.0060295183,0.008625186,-0.0036873345,0.004413986,-0.012593041,-0.003322319,-0.0066243587,0.00570506,-0.013478543,-0.015060278,-0.028714567,-0.011450677,-0.0061038737,0.008212853,-0.0040760087,-0.027416734,0.0034017435,-0.018413015,0.013654291,-0.005329905,-0.026794856,-0.019521581,0.015411774,0.0013924673,-0.012478129,0.008469716,-0.01680424,0.0029268852,-0.02433438,-0.008239891,-0.004988548,-0.020224573,-0.023536753,-0.008942884,0.018075036,0.018859144,0.026794856,0.010727406,-0.0013502201,0.004116566,-0.012572763,0.010862596,-0.019426946,0.030255746,-0.0073543903,0.018467091,0.025334792,0.006833905,-0.011051864,0.005992341,-0.018142631,0.018805068,0.0075368984,-0.013106767,-0.018899702,-0.032121383,-0.010139325,0.011504754,-0.018845625,-0.00061216176,-0.025618695,-0.008665743,0.018264303,-0.0113290055,0.009828386,0.00078326283,0.015290102,-0.016479783,0.01457359,0.008679262,-0.004971649,-0.007104287,-0.01608773,-0.004160503,0.005512413,0.025726847,0.021955019,0.00021630559,-0.0133636305,0.003974615,-0.0050054467,0.012538965,-0.0047857612,-0.015411774,0.016141806,-0.03033686,-0.008631946,0.0042416174,-0.0020194156,-0.0267543,-0.010423226,0.018115593,-0.02763304,0.019940672,-0.030553166,-0.01574975,-0.010017653,0.0051879548,0.011132979,0.0037549299,0.010531379,0.0005052764,-0.0041199457,-0.014384322,-0.000210391,0.006844044,-0.013241958,0.014384322,0.008983442,-0.014478956,-0.023509715,0.0013637393,-0.011673743,0.016020134,-0.014708781,0.027213948,0.01907545,0.00225262,-0.02868753,-0.024280304,0.010166363,0.013390669,-0.001786211,0.013356871,0.000743128,-0.008882049,-0.014208574,0.018534686,-0.03301364,0.025578137,0.014451918,-0.025294235,-0.011633186,-0.013323073,-0.0011744718,-0.0005673797,0.010585455,0.019602695,0.011335765,0.0070096534,-0.0059112264,-0.0056070467,-0.02400992,0.015438812,-0.012248305,0.0237125,-0.02626761,-0.00210222,-0.001411901,0.0006020224,0.016141806,0.021684635,-0.0016417257,-0.021346658,-0.016398668,-0.0034439906,0.025104968,0.011220853,-0.012342938,-0.0026243953,-0.021684635,-0.011484475,-0.0046066334,0.014438398,0.01051786,-0.0036704356,-0.0039881347,-0.010315073,-0.0052656895,0.015844384,-0.0031009435,-0.006830525,0.03617711,0.019007854,-0.0011753167,-0.007002894,-0.0071245655,0.008638705,-0.03590673,-0.0044815815,-0.01772354,-0.015736232,0.012721473,-0.01576327,-0.00690826,-0.009341698,0.013505581,0.009977096,0.016939431,0.00090155494,0.043774847,-0.005029105,0.0012302381,-0.027159872,-0.006353977,0.018710434,-0.014032826,0.016128287,0.00871982,-0.000052861793,0.034960393,0.009699954,0.012092835,0.010470543,-0.03214842,-0.019278236,-0.012701195,0.024131592,-0.008814453,0.0030316582,-0.004860116,-0.018467091,-0.009138912,0.02479403,0.00525555,-0.018980816,-0.015087316,0.039421696,0.033148833,0.010024413,-0.010977509,-0.020440878,-0.006245824,0.0017219953,-0.04223367,-0.012451091,0.0005977977,0.029904248,0.008699541,-0.024212709,-0.033554405,0.0033459773,-0.023023028,-0.0090442775,0.0017084762,0.024145111,0.018534686,-0.008476475,-0.020954605,-0.005042624,0.01141012,0.020075863,0.009192988,0.007543658,0.027295062,-0.028741606,0.027957499,0.005167676,-0.015790308,0.010240718,0.015790308,-0.0074084667,0.0018064898,0.00780728,-0.011457437,-0.017628906,-0.014627666,0.00067933474,-0.0074084667,0.024942739,0.029471638,-0.04372077,0.0029995502,0.017669464,-0.013431226,-0.0029116762,0.012505167,-0.0034355412,-0.0042923144,0.0022458604,-0.025902595,-0.005928125,0.0074693025,-0.023212295,0.021671116,0.013721886,-0.01638515,0.0270382,0.0038867411,0.007090768,-0.014384322,-0.013323073,-0.031012814,-0.0019889975,0.025469985,-0.028849758,-0.01607421,-0.011139738,0.020292168,-0.025605176,0.008199334,0.0049953074,-0.009618839,-0.011227612,0.002614256,0.017696502,-0.0017794515,0.00059399544,0.0071516037,-0.0077870013,-0.005181195,0.00031495278,0.010220439,-0.0073341117,0.026483916,0.010936952,-0.0056847814,-0.050967008,-0.017682983,0.01576327,0.008976682,0.004234858,0.20451695,0.025267197,0.006205267,0.04012469,-0.020292168,0.02268505,0.025524061,0.004025312,-0.0034980671,-0.010720646,-0.016006615,0.0019906876,-0.014032826,-0.0064959275,-0.008388601,-0.019318793,-0.02027865,-0.0333381,-0.017899288,-0.012789069,0.0041807815,0.00077565835,-0.0074422644,-0.014181536,0.035365965,0.0062120263,-0.010923433,0.012566003,0.023766577,0.011187055,-0.0037042333,-0.0037278917,0.020603107,0.00720568,-0.013471783,-0.0054921345,-0.014127459,-0.0092335455,0.01457359,0.013654291,0.0034034334,-0.0037954873,0.0037109929,-0.003036728,-0.014073383,0.037204564,0.009341698,-0.009963577,0.020968124,0.018737473,-0.030120555,-0.017980402,0.020008268,0.04277443,0.0091456715,0.0054008802,0.0146817425,0.0018723953,0.00025137077,0.00003131573,-0.020521993,0.022630973,-0.020549031,0.0048398376,-0.011558831,0.0023540133,-0.018115593,0.014019307,0.0003785348,-0.0022255818,0.010294794,-0.010957231,-0.013674569,-0.0074219857,-0.015236026,-0.031012814,0.03247288,0.042882584,-0.0022019234,0.0123091405,-0.009956817,0.010092008,0.0285253,-0.010774722,0.005928125,-0.036717877,0.0011279999,0.0030603863,0.009301141,0.008483235,0.0070231725,0.0026666424,-0.016682569,-0.009841905,0.004295694,0.0067696893,0.0037887278,0.011842731,-0.018196708,0.0074219857,-0.009740512,-0.03487928,0.019724367,0.009084835,-0.0015496268,0.0030248987,0.0075909747,0.0049074334,-0.027443772,-0.035555232,-0.0034406108,-0.0183319,-0.0035994602,0.0047553433,0.026970604,0.0037684492,0.029633867,-0.013127046,0.010315073,-0.020075863,0.0052927276,-0.022320034,-0.018696915,-0.00048373028,-0.0014507684,-0.009713473,-0.012261824,0.0007921347,0.0067933477,-0.032391764,-0.0019383009,0.0064621298,0.0016772134,-0.014492475,-0.0021850246,0.028417148,0.0021900942,-0.029039027,-0.004545797,0.0017946605,0.017196296,0.011322246,0.008841491,0.021211468,-0.0077261655,-0.0023776717,0.01666905,0.008293968,0.0035318648,-0.008199334,-0.009983855,-0.01607421,0.0021731954,-0.020900529,0.015344178,-0.030472051,-0.035771538,-0.025321273,-0.022644492,0.036609724,-0.011072143,0.009524206,0.026510954,-0.015952539,-0.021968538,-0.00976755,-0.17564015,0.025483504,0.04163883,-0.0074828216,0.016858317,0.018886182,-0.005948404,-0.012511927,-0.0004121213,0.012146912,0.0366638,-0.0046674693,-0.031607654,-0.016912393,0.0022053032,-0.01681776,-0.012491648,-0.000077734825,0.0044984804,0.004741824,0.017196296,-0.011497995,0.037934594,-0.034014054,-0.01321492,0.014195055,0.004315973,0.019116007,-0.002867739,-0.0101866415,-0.026848933,-0.011639945,0.0059382645,0.0044241254,0.027416734,0.020981643,-0.010936952,-0.018656358,-0.014492475,0.017182777,0.0017372044,0.024699396,0.016763683,0.013309554,-0.0030705256,0.029390523,0.0300124,-0.0018098695,-0.009267343,-0.004370049,0.014749338,-0.017953364,-0.0014490786,0.009652637,0.0034591996,0.0030434874,0.0017101661,0.0031938874,0.007192161,-0.0195351,-0.027092276,-0.006874462,0.009138912,-0.0002828449,-0.01816967,-0.014046345,-0.018372457,0.0024114694,-0.028930875,0.024739953,0.013106767,-0.036609724,0.0150197195,-0.02148185,0.031715807,0.018372457,-0.017088141,0.011497995,-0.007219199,-0.010558417,-0.012822866,0.033446252,-0.018980816,-0.014465437,0.007983029,0.003873222,-0.0055631096,-0.0029927907,-0.011173536,-0.015087316,-0.0076112533,-0.027957499,0.00885501,-0.025361832,0.005647604,0.0038495637,-0.011788655,-0.0074557834,-0.02207669,0.012444331,0.029633867,0.007759963,-0.030472051,0.035041507,0.030282784,0.017899288,-0.0031905076,0.019413427,0.011545312,-0.015425293,-0.025294235,-0.008104701,0.026402801,0.013620493,-0.002717339,0.0037312715,0.0129242595,-0.007557177,0.0003821258,-0.00049724936,0.045234907,0.00063708756,-0.011470956,0.036528606,0.0016391908,-0.016128287,-0.0859274,-0.02026513,0.02702468,0.016777202,-0.017182777,0.0420444,0.0032952805,0.013012134,-0.00076678646,0.029850172,0.008415639,-0.016560897,0.00720568,-0.010842318,0.033121794,0.013992269,0.004772242,-0.027254505,-0.010578696,0.017507235,-0.015641598,0.0033628761,-0.010754444,-0.016425706,-0.00012293931,0.0064959275,-0.018602282,0.01546585,0.010166363,0.016709607,-0.009476889,-0.01756131,-0.015871422,-0.010004134,-0.015100835,0.0056104264,-0.031445425,0.010071729,0.010544898,-0.043774847,-0.00020711683,0.010078489,-0.004373429,-0.02056255,-0.010423226,-0.011335765,0.015330659,-0.0021546066,0.012829626,-0.0063810153,-0.005289348,-0.0059991004,-0.004562696,0.014614147,-0.009348458,-0.02238763,-0.015411774,0.015276583,-0.017317967,-0.0056543634,-0.012843145,-0.0070840083,-0.019873077,0.017682983,0.0033138692,0.011308727,-0.022171324,-0.031742845,0.015114354,-0.020954605,-0.021603521,0.010085248,-0.0300124,-0.00285253,-0.0390702,-0.011903567,-0.014289688,-0.018413015,0.019819,-0.035933767,-0.03439259,-0.027768232,0.009929779,0.0071110465,0.031310234,0.020968124,0.0091456715,-0.022130767,0.0020802515,-0.023901768,0.008631946,0.03136431,0.002223892,-0.04023284,-0.0075504174,0.017588349,0.0036873345,-0.014140978,0.012856664,0.0020616627,-0.010605734,-0.01036915,-0.07100231,0.012545724,-0.0143167265,-0.017304448,0.040638413,-0.0063945344,-0.0042145792,-0.021671116,-0.0014592179,0.0075909747,-0.042152554,-0.010132565,0.006671676,0.01172106,-0.019751405,-0.030715395,0.025835,0.018791549,0.010653051,0.021211468,0.023388043,0.004025312,0.016763683,-0.009862184,-0.02373954,0.000056558423,-0.015263064,0.016398668,0.005546211,-0.010930193,0.020102901,-0.035798576,0.009057797,0.043801885,0.00039712357,-0.015087316,0.02131962,0.026497435,0.034473706,0.0089564035,-0.009787829,-0.0075639365,0.003815766,-0.016979989,-0.009943298,0.004072629,0.007530139,-0.0028829481,0.021279063,0.018129112,0.019291755,0.030526128,0.0016434155,-0.026145939,-0.012329419,-0.030363899,0.024077516,0.008800934,-0.006742651,0.011808934,0.02506441,0.012491648,0.007834318,0.022252439,0.014695262,-0.014330246,-0.021441292,-0.0027088895,0.026835414,-0.026686704,-0.0018808448,0.0011474336,0.02569981,-0.001518364,0.023834173,-0.017642425,0.013032412,-0.00630328,-0.029552752,0.023969363,0.008787415,-0.0086184265,-0.004610013,0.022590416,0.004931092,0.0007553797,-0.018967297,-0.0019889975,-0.0037008536,0.015668636,-0.005529312,-0.015371216,0.00645875,-0.00031579772,0.009977096,0.011815693,0.005569869,-0.009476889,0.01426265,0.023509715,0.018669877,-0.017777616,-0.014641185,-0.019913634,-0.011802174,0.025510542,0.0026091863,-0.011315486,-0.013992269,0.012342938,0.031932116,0.021211468,0.00871982,0.026105382,-0.01787225,0.020616626,-0.013857078,-0.033554405,-0.033824787,0.0135393785,0.016777202,0.02175223,0.012674156,-0.007841078,0.018210227,0.0076044938,-0.0074287453,-0.0068541835,0.02898495,-0.0045221387,0.025916114,0.0050561433,-0.023117661,-0.0012031998,-0.020346245,0.009334939,-0.0054279184,0.0031736088,-0.010653051,0.040151726,-0.001487101,0.008544071,0.004386948,0.015601041,0.037501983,0.013647531,0.010092008,-0.027876385,-0.018696915,0.017493716,0.013296035,0.012200988,-0.018886182,-0.013992269,-0.0021579864,0.0017811414,0.02207669,-0.019183602,0.011585869,0.026565032,0.010747684,0.024280304,-0.016114768,-0.01922416,0.004444404,0.01574975,0.0092335455,-0.008368323,-0.029309409,0.011173536,-0.00067173026,-0.012856664,-0.027146352,0.009111873,-0.014898048,-0.02822788,0.00811822,0.02087349,0.03244584,-0.00024080896,0.022603935,-0.019994749,-0.0014609077,0.018196708,-0.018075036,-0.0022728986,0.0028711187,-0.022739125],
9 "numCandidates": 100,
10 "limit": 20
11 }
12 }, {
13 "$group": {
14 "_id": null,
15 "docs": {"$push": "$$ROOT"}
16 }
17 }, {
18 "$unwind": {
19 "path": "$docs",
20 "includeArrayIndex": "rank"
21 }
22 }, {
23 "$addFields": {
24 "vs_score": {
25 "$divide": [1.0, {"$add": ["$rank", vector_penalty, 1]}]
26 }
27 }
28 }, {
29 "$project": {
30 "vs_score": 1,
31 "_id": "$docs._id",
32 "title": "$docs.title"
33 }
34 },
35 {
36 "$unionWith": {
37 "coll": "movies",
38 "pipeline": [
39 {
40 "$search": {
41 "index": "rrf-full-text-search",
42 "phrase": {
43 "query": "new york",
44 "path": "title"
45 }
46 }
47 }, {
48 "$limit": 20
49 }, {
50 "$group": {
51 "_id": null,
52 "docs": {"$push": "$$ROOT"}
53 }
54 }, {
55 "$unwind": {
56 "path": "$docs",
57 "includeArrayIndex": "rank"
58 }
59 }, {
60 "$addFields": {
61 "fts_score": {
62 "$divide": [
63 1.0,
64 {"$add": ["$rank", full_text_penalty, 1]}
65 ]
66 }
67 }
68 },
69 {
70 "$project": {
71 "fts_score": 1,
72 "_id": "$docs._id",
73 "title": "$docs.title"
74 }
75 }
76 ]
77 }
78 },
79 {
80 "$group": {
81 "_id": "$title",
82 "vs_score": {"$max": "$vs_score"},
83 "fts_score": {"$max": "$fts_score"}
84 }
85 },
86 {
87 "$project": {
88 "_id": 1,
89 "title": 1,
90 "vs_score": {"$ifNull": ["$vs_score", 0]},
91 "fts_score": {"$ifNull": ["$fts_score", 0]}
92 }
93 },
94 {
95 "$project": {
96 "score": {"$add": ["$fts_score", "$vs_score"]},
97 "_id": 1,
98 "title": 1,
99 "vs_score": 1,
100 "fts_score": 1
101 }
102 },
103 {"$sort": {"score": -1}},
104 {"$limit": 10}
105])
[
{ _id: 'Pixels', vs_score: 0.5, fts_score: 0, score: 0.5 },
{
_id: 'Fighting',
vs_score: 0.3333333333333333,
fts_score: 0,
score: 0.3333333333333333
},
{
_id: 'A Most Violent Year',
vs_score: 0.25,
fts_score: 0,
score: 0.25
},
{
_id: 'Mistletoe Over Manhattan',
vs_score: 0.2,
fts_score: 0,
score: 0.2
},
{
_id: 'End of Days',
vs_score: 0.16666666666666666,
fts_score: 0,
score: 0.16666666666666666
},
{ _id: 'Sam', vs_score: 0.125, fts_score: 0, score: 0.125 },
{
_id: 'Rumble in the Bronx',
vs_score: 0.1111111111111111,
fts_score: 0,
score: 0.1111111111111111
},
{
_id: 'Escape from New York',
vs_score: 0.047619047619047616,
fts_score: 0.05555555555555555,
score: 0.10317460317460317
},
{ _id: 'The Other Guys', vs_score: 0.1, fts_score: 0, score: 0.1 },
{
_id: 'Sky Captain and the World of Tomorrow',
vs_score: 0.09090909090909091,
fts_score: 0,
score: 0.09090909090909091
}
]

103번째 줄의 score 값을 1 으로 바꿔서 결과를 오름차순으로 정렬하면 Atlas Vector Search에서 다음과 같은 결과를 반환합니다.

[
{
_id: '2 Days in New York',
vs_score: 0,
fts_score: 0.03333333333333333,
score: 0.03333333333333333
},
{
_id: 'An Englishman in New York',
vs_score: 0,
fts_score: 0.034482758620689655,
score: 0.034482758620689655
},
{
_id: 'New York, I Love You',
vs_score: 0,
fts_score: 0.03571428571428571,
score: 0.03571428571428571
},
{
_id: 'New York: A Documentary Film',
vs_score: 0,
fts_score: 0.037037037037037035,
score: 0.037037037037037035
},
{
_id: 'A Couch in New York',
vs_score: 0,
fts_score: 0.038461538461538464,
score: 0.038461538461538464
},
{
_id: 'Sherlock Holmes in New York',
vs_score: 0,
fts_score: 0.04,
score: 0.04
},
{
_id: 'A King in New York',
vs_score: 0,
fts_score: 0.041666666666666664,
score: 0.041666666666666664
},
{
_id: 'Live from New York!',
vs_score: 0,
fts_score: 0.043478260869565216,
score: 0.043478260869565216
},
{
_id: 'Sleepless in New York',
vs_score: 0,
fts_score: 0.045454545454545456,
score: 0.045454545454545456
},
{
_id: 'Gangs of New York',
vs_score: 0,
fts_score: 0.047619047619047616,
score: 0.047619047619047616
}
]

Atlas Search 전체 텍스트와 벡터 검색을 결합하여 하나의 병합된 결과 집합을 반환하는 하이브리드 검색 쿼리를 보여주는 애플리케이션 데모를 시청하세요. 이 애플리케이션은 RSF(상대 점수 통합) 및 RRF(역수 순위 통합)를 구현하여 순위 통합 알고리즘을 사용하여 생성된 병합된 세트를 반환합니다.

소요 시간: 2.43분

← 전체 텍스트 Regex 쿼리에 Atlas Search 사용