문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

자체 관리 배포서버에서 텍스트 검색 결과에 가중치 할당

텍스트 Atlas Search는 인덱스 필드에 Atlas Search 용어가 포함된 각 문서에 점수를 할당합니다. 점수는 지정된 Atlas Search 쿼리에 대한 문서의 관련성을 결정합니다.

text 인덱스의 경우, 인덱싱된 필드의 가중치 는 텍스트 Atlas Search 점수 측면에서 인덱싱된 다른 필드에 대한 필드의 중요성을 나타냅니다.

문서의 인덱싱된 각 필드에 대해 MongoDB는 일치 항목 수에 가중치를 곱하고 결과를 합산합니다. 그런 다음 MongoDB는 이 합계를 사용하여 문서의 점수를 계산합니다. 텍스트 점수별 반환 및 정렬에 대한 자세한 내용은 $meta 연산자를 참조하세요.

인덱싱된 필드의 기본 가중치는 1입니다. 인덱싱된 필드의 가중치를 조정하려면 db.collection.createIndex() 메서드에 weights 옵션을 포함합니다.

경고

인덱스를 다시 생성할 필요가 없도록 가중치를 신중하게 선택하세요.

컬렉션 blog에는 다음 문서가 있습니다.

{
_id: 1,
content: "This morning I had a cup of coffee.",
about: "beverage",
keywords: [ "coffee" ]
}
{
_id: 2,
content: "Who doesn't like cake?",
about: "food",
keywords: [ "cake", "food", "dessert" ]
}

content 필드와 keywords 필드에 대해 서로 다른 필드 가중치를 사용하여 text 인덱스를 생성하려면 createIndex() 메서드에 weights 옵션을 포함합니다. 예를 들어, 다음 명령은 세 필드에 인덱스를 생성하고 그 중 두 필드에 가중치를 할당합니다.

db.blog.createIndex(
{
content: "text",
keywords: "text",
about: "text"
},
{
weights: {
content: 10,
keywords: 5
},
name: "TextIndex"
}
)

text 인덱스에는 다음과 같은 필드와 가중치가 있습니다.

  • content 가중치는 10 이고,

  • keywords 가중치는 5 이고,

  • about 기본 가중치는 1입니다.

이러한 가중치는 인덱싱된 필드의 상대적 중요성을 나타냅니다. 예를 들어, 필드의 텀 일치는 content 다음과 같습니다:

  • 2 시간(예: 10:5)이 keywords 필드에서 텀 일치로 인한 영향 및

  • 10 시간(예 10:1) about 필드의 용어 일치로 인한 영향.

참고

MongoDB Atlas에서 호스팅되는 데이터의 경우 Atlas Searchtext 인덱스보다 더 강력한 사용자 지정 점수를 제공합니다. 자세히 알아보려면 Atlas Search 점수( Scoring ) 문서를 참조하세요.

돌아가기

다음에 대한 이름 지정

다음

자체 관리 배포서버에서 스캔되는 텍스트 인덱스 항목 수 제한