AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

결과에서 문서 점수 사용자 지정

결과에서 문서의 점수를 사용자 지정할 수 있습니다. 점수 계산 방식을 조정하면 가장 관련성이 높은 문서가 검색 결과에서 더 높은 순위에 오르게 할 수 있습니다. 점수를 사용자 지정하는 다양한 방법에 대해 자세히 알아보려면 결과에서 문서 점수 매기기를 참조하세요. 이 페이지에서는 다음을 수행하는 방법을 보여줍니다.

  • 결과에서 문서의 점수를 수정하여 결과의 순위를 올리거나 내릵니다.

  • 후속 집계 파이프라인 단계에서 당사의 $search 쿼리 점수를 0에서 1 범위로 정규화할 수 있습니다.

MongoDB Search 쿼리는 반환되는 모든 문서에 개백 유용성에 따라 점수를 할당합니다. 결과 세트에 포함된 문서는 가장 높은 점수에서 가장 낮은 점수 순으로 반환됩니다. 자세히 알아보려면 결과에서 문서 점수 매기기를 참조하세요.

모든 연산자에서 다음 옵션을 사용하여 기본 채점 동작을 수정할 수 있습니다. 자세한 내용과 예시를 보려면 다음 옵션 중 하나를 클릭하세요.

이 섹션에서는 검색 필드에 가중치를 추가하여 결과 또는 결과 카테고리에서 문서의 순위를 올리거나 내리는 방법을 설명합니다. 구체적으로 필드에 하나 이상의 값을 할당하여 점수가 높거나 낮은 결과를 반환하는 방법을 설명합니다.

동적 매핑이 활성화된 인덱스를 설정하여 컬렉션의 모든 필드를 인덱싱할 수 있습니다. 또는 쿼리하고 결과를 정렬하려는 필드에 정적 매핑을 사용합니다. MongoDB Search 인덱스 생성에 대해 자세히 학습하려면 MongoDB Search 인덱스 관리를 참조하세요.

샘플 쿼리는 결과에서 문서의 순위를 올리거나 내리는 방법을 보여줍니다. 이러한 연산자는 복합 연산자를 사용하여 두 개 이상의 연산자를 하나의 쿼리로 결합합니다.

집계 파이프라인의 후속 단계에서 0 에서 1 범위의 $search 쿼리 점수를 정규화할 수 있습니다. $search 단계 이후 다음 단계를 사용하여 다음 순서로 점수를 정규화할 수 있습니다.

  • $addFields

    {
    "$addFields": {
    "score": {
    "$meta": "searchScore"
    }
    }
    }
  • $setWindowFields

    {
    "$setWindowFields": {
    "output": {
    "maxScore": {
    "$max": "$score"
    }
    }
    }
    }
  • $addFields

    {
    "$addFields": {
    "normalizedScore": {
    "$divide": [
    "$score", "$maxScore"
    ]
    }
    }
    }
1db.movies.aggregate([{
2 "$search": {
3 "text": {
4 "query": "Helsinki",
5 "path": "plot"
6 }
7 }
8 },
9 {
10 "$limit": 5
11 },
12 {
13 "$project": {
14 "_id": 0,
15 "title": 1,
16 "score": 1,
17 "maxScore": 1,
18 "normalizedScore": 1
19 }
20 },
21 {
22 "$addFields": {
23 "score": {
24 "$meta": "searchScore"
25 }
26 }
27 },
28 {
29 "$setWindowFields": {
30 "output": {
31 "maxScore": {
32 "$max": "$score"
33 }
34 }
35 }
36 },
37 {
38 "$addFields": {
39 "normalizedScore": {
40 "$divide": [
41 "$score", "$maxScore"
42 ]
43 }
44 }
45}])
1[
2 {
3 title: 'Drifting Clouds',
4 score: 4.5660295486450195,
5 maxScore: 4.5660295486450195,
6 normalizedScore: 1
7 },
8 {
9 title: 'Sairaan kaunis maailma',
10 score: 4.041563034057617,
11 maxScore: 4.5660295486450195,
12 normalizedScore: 0.8851372929150143
13 },
14 {
15 title: 'Bad Luck Love',
16 score: 3.6251673698425293,
17 maxScore: 4.5660295486450195,
18 normalizedScore: 0.79394303764817
19 },
20 {
21 title: 'Bad Luck Love',
22 score: 3.6251673698425293,
23 maxScore: 4.5660295486450195,
24 normalizedScore: 0.79394303764817
25 },
26 {
27 title: 'Forbidden Fruit',
28 score: 3.6251673698425293,
29 maxScore: 4.5660295486450195,
30 normalizedScore: 0.79394303764817
31 }
32]

MongoDB Search 결과에는 다음 점수가 포함됩니다.

  • The modified score for the $search query in the score field from the $addFields stage.

  • The maximum score assigned to the documents in the results in the maxScore field from the $setWindowFields stage.

  • The normalized score in the normalizedScore field from the $addFields stage. MongoDB computes this score by dividing the modified score in $score by the maximum score in $maxScore using $divide.

To learn more about compound queries using MongoDB Search, take Unit 9 of the Intro To MongoDB Course on MongoDB University. The 1.5-hour unit includes an overview of MongoDB Search. The unit also covers creating MongoDB Search indexes, running $search queries using compound operators, and grouping results using facet (MongoDB Search Operator).