Atribuir pesos aos resultados da pesquisa de texto em sistemas autogerenciados
Texto O Atlas Search atribui uma pontuação a cada documento que contém o termo do Atlas Search nos campos indexados. A pontuação determina a relevância de um documento para uma determinada query do Atlas Search .
Para um índice text
, o peso de um campo indexado denota a importância do campo em relação aos outros campos indexados em termos da pontuação de texto do Atlas Search .
Para cada campo indexado no documento, o MongoDB multiplica o número de correspondências pelo peso e soma os resultados. Usando essa soma, o MongoDB calcula a pontuação do documento. Consulte o operador $meta
para obter detalhes sobre o retorno e a classificação por pontuações de texto.
O peso padrão é 1 para os campos indexados. Para ajustar os pesos dos campos indexados, inclua a opção weights
no método db.collection.createIndex()
.
Aviso
Escolha os pesos cuidadosamente para evitar a necessidade de reindexar.
Uma coleção blog
possui os seguintes documentos:
{ _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" ] }
Para criar um text
índice com diferentes pesos de campo para o content
campo e o keywords
campo , inclua a weights
opção no método createIndex()
. Por exemplo, o seguinte comando cria um índice em três campos e atribui pesos a dois dos campos:
db.blog.createIndex( { content: "text", keywords: "text", about: "text" }, { weights: { content: 10, keywords: 5 }, name: "TextIndex" } )
O índice text
tem os seguintes campos e pesos:
content
tem um peso de 10,keywords
tem um peso de 5 eabout
tem o peso padrão de 1.
Esses pesos denotam a importância relativa dos campos indexados entre si. Por exemplo, uma correspondência de termo no campo content
tem:
2
vezes (ou seja10:5
) o impacto como uma correspondência de termo no campokeywords
e10
vezes (ou seja10:1
) o impacto como uma correspondência de termo no campoabout
.
Observação
Para dados hospedados no MongoDB Atlas, o Atlas Search fornece uma pontuação personalizada mais robusta do que text
índices. Para saber mais, consulte a documentação de Pontuação do Atlas Search .