Docs Menu
Docs Home
/
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 ) 문서를 참조하세요.

돌아가기

텍스트 인덱스의 이름 지정