자체 관리 배포서버에서 텍스트 검색 결과에 가중치 할당
텍스트 Atlas Search는 인덱스 필드에 Atlas Search 용어가 포함된 각 문서에 점수를 할당합니다. 점수는 지정된 Atlas Search 쿼리에 대한 문서의 관련성을 결정합니다.
text
인덱스의 경우 인덱스된 필드의 가중치 는 텍스트 검색 점수 측면에서 인덱스된 다른 필드에 대한 필드의 중요성을 나타냅니다.
문서의 인덱싱된 각 필드에 대해 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 ) 문서를 참조하세요.