자체 관리 배포서버에서 텍스트 검색 결과에 가중치 할당
텍스트 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 Search 는 text
인덱스보다 더 강력한 사용자 지정 점수를 제공합니다. 학습 보려면 Atlas Search 점수( Scoring ) 문서를 참조하세요.