결과에서 문서 점수 매기기
Atlas Search 또는 Atlas Vector Search 쿼리 에서 반환된 모든 문서 에는 관련성에 따라 점수가 할당되며, 결과 설정하다 에 포함된 문서는 가장 높은 점수부터 가장 낮은 점수 순으로 반환됩니다.
사용법
검색 결과에 각 문서 의 점수를 포함하려면 집계 파이프라인 에서 $project
단계를 사용합니다.
$search
단계의 경우score
필드searchScore
값이 필요한 $meta 표현식 사용합니다. 점수에 대한 자세한 분석을 위해scoreDetails
필드 $meta 표현식에searchScoreDetails
값을 지정할 수도 있습니다.참고
검색 노드를 배포한 경우 다음 사항을 고려하세요.
검색 노드마다 결과가 다를 수 있으므로
searchScore
를 기준으로 결과를 정렬하지 마세요.searchScore
를 계산하기 위해 호스팅하다 아직 인덱스 에서 제거되지 않은 삭제된 문서를 포함하여 호스트에 존재하는 모든 문서를 고려합니다. 삭제는 각 호스팅하다 에서 독립적으로 수행되므로 쿼리 라우팅되는 호스팅하다 에 따라searchScore
가 변경될 수 있습니다.
검색 노드에서
searchScore
기준으로 정렬할 때 페이지 매김을 지원 하려면 MongoDB 피드백 엔진에서 이 요청 투표를 하세요.단계의 경우 필드 벡터 검색 결과에서 각 문서 의 점수를 반환하기 위해
$vectorSearch
값이score
필요한 $meta 표현식 사용합니다.vectorSearchScore
예시
다음 쿼리는 $project
단계를 사용하여 반환된 문서에 score
라는 이름의 필드를 추가합니다.
1 db.movies.aggregate([ 2 { 3 "$search": { 4 "text": { 5 <operator-specification> 6 } 7 } 8 }, 9 { 10 "$project": { 11 "<field-to-include>": 1, 12 "<field-to-exclude>": 0, 13 "score": { "$meta": "searchScore" } 14 } 15 } 16 ])
1 db.movies.aggregate([ 2 { 3 "$search": { 4 "text": { 5 <operator-specification> 6 }, 7 "scoreDetails": true 8 } 9 }, 10 { 11 "$project": { 12 "<field-to-include>": 1, 13 "<field-to-exclude>": 0, 14 "scoreDetails": { "$meta": "searchScoreDetails" } 15 } 16 } 17 ])
자세한 내용은 점수 상세 정보 반환을 참조하세요.
1 db.movies.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 ])
자세한 내용은 Atlas Vector Search Score를 참조하세요.
행동
반환된 문서에 할당된 점수는 문서 메타데이터의 일부입니다. 집계 파이프라인에서 $project
단계를 사용하여 반환된 각 문서의 점수를 결과 설정하다와 함께 포함할 수 있습니다. 문서가 가장 높은 점수에서 가장 낮은 점수로 반환됩니다. 다음과 같은 여러 요인이 문서의 점수에 영향을 미칠 수 있습니다.
문서 에서 검색 의 위치 텀 .
문서 에서 검색 텀 발생하는 빈도입니다.
Atlas Search 쿼리 사용하는 연산자 또는 분석기 의 유형입니다.
루센 점수 알고리즘 에 대해 자세히 학습 루센 문서를 참조하세요.
추가 옵션
기본값 채점 동작 외에도 Atlas Search 다음 옵션을 지원합니다.
점수 세부 정보 옵션을 사용하여 점수에 대한 자세한 분석을 반환합니다.
고려 사항
결과의 여러 문서에 동일한 점수가 있는 경우 결과의 문서 순서는 비결정적입니다. Atlas Search 결과의 순서가 결정되도록 하려면 단계에 정렬 옵션을 포함하여 $search
고유한 필드 기준으로 결과를 정렬합니다.정렬 옵션을 사용하여 결과를 점수별로 오름차순으로 정렬하여 반환할 수도 있습니다. 자세히 학습 Atlas Search 결과 정렬 및 점수별 정렬 예시를 참조하세요.
별도의 검색 노드 에서 각 노드 점수가 동일한 경우 정렬에 사용되는 서로 다른 내부 루센 ID를 문서에 할당합니다. 결과를 정렬하고 페이지 매김할 때 mongot
내부 ID의 페이지 매김 순서가 토큰보다 큰 경우 쿼리 처리 중인 노드 의 프로세스 에 다른 노드의 문서가 포함될 수 있습니다. 이를 방지하려면 $match
뒤에 $search
를 사용하여 을 기준으로 문서를 제외합니다._id
배열 값을 쿼리할 때 Atlas Search 배열 에서 쿼리 와 일치하는 값의 수에 관계없이 동일한 점수를 할당합니다.