Página inicial do Docs → Iniciar e gerenciar o MongoDB → MongoDB Atlas
Retorne os Detalhes da Pontuação
Nesta página
Você pode usar a opção booleana scoreDetails
em seu estágio $search
para obter um detalhamento detalhado da pontuação de cada documento nos resultados da query. Para visualizar os metadados, você deve utilizar a expressão $meta no estágio $project
.
Sintaxe
{ "$search": { "<operator>": { <operator-specification> }, "scoreDetails": true | false } }, { "$project": { "scoreDetails": {"$meta": "searchScoreDetails"} } }
Opções
No estágio $search, a opção booleana scoreDetails
assume um dos seguintes valores:
true
- para incluir detalhes da pontuação dos documentos nos resultados. Se definido comotrue
, o Atlas Search retornará um detalhamento detalhado da pontuação para cada documento no resultado. Para saber mais, consulte Saída.false
- para excluir detalhes do detalhamento da pontuação dos resultados. (Padrão)
Se omitido, a opção scoreDetails
será padronizada como false
.
No estágio $project, o campo scoreDetails
recebe a expressão $meta , que requer o seguinte valor:
searchScoreDetails | Retorna um detalhamento detalhado da pontuação para cada documento nos resultados. |
Saída
A opção scoreDetails
retorna os seguintes campos na array details
dentro do objeto scoreDetails
para cada documento no resultado:
Campo | Tipo | Descrição |
---|---|---|
value | flutuar | Contribuição para a pontuação por um subconjunto da fórmula de pontuação. A fórmula de pontuação varia de acordo com o operador usado na query. Por exemplo, o Atlas Search usa a seguinte fórmula de pontuação para uma query composta com operadores de texto e proximidade : ObservaçãoO |
description | string | Subconjunto da fórmula de pontuação, incluindo detalhes sobre como o documento foi pontuado e os fatores considerados no cálculo da pontuação. ObservaçãoO Para saber mais, consulte Fatores que contribuem para a pontuação. |
details | Array de objetos | Detalhamento da pontuação para cada correspondência no documento com base no subconjunto da fórmula de pontuação. O valor é uma array de objetos de detalhes de pontuação, recursivos em estrutura. |
Fatores que contribuem para a pontuação
Para BM25Similarity
, a pontuação é calculada como boost * idf * tf
. O Atlas Search leva em conta os seguintes fatores BM25Similarity
para calcular a pontuação:
boost | Aumentar a importância do termo. | |
---|---|---|
freq | Frequência do termo da query. | |
idf | Frequência de documentos inversa da query. Atlas Search calcula a frequência utilizando a seguinte fórmula:
onde:
| |
tf | Frequência do termo. Atlas Search calcula a frequência utilizando a seguinte fórmula:
onde:
|
Para a função de decaimento da distância, a pontuação é calculada como pivot / (pivot +
abs(fieldValue - origin))
. O Atlas Search leva em conta os seguintes fatores para calcular a pontuação:
origin | Valor para pesquisar próximo. Este é o ponto de origem do qual a proximidade dos resultados é medida. |
---|---|
fieldValue | Valor do campo que você está consultando no documento. Quanto mais próximo o fieldValue estiver de origin , maior será a pontuação da query próxima. |
pivot | Valor especificado como ponto de referência para tornar a pontuação igual a 0.5 se a distância entre fieldValue e origin for igual a ele. Isso define a rapidez com que a pontuação diminui à medida que a distância entre fieldValue e origin aumenta. Para uma determinada distância entre fieldValue e origin , se pivot diminuir, a pontuação também diminui. |
Exemplos
Os exemplos a seguir mostram como recuperar os detalhes das pontuações nos resultados para o seguinte:
A query é executada usando operadores text, near, composto e embeddedDocument .
Query com pontuações modificadas usando expressão de opção
function
.
Dica
Para visualizar detalhes da pontuação recursivamente nas matrizes de objetos, configure as configurações em mongosh
executando o seguinte:
config.set('inspectDepth', Infinity)
Exemplos de operador
Os exemplos a seguir demonstram como recuperar um detalhamento da pontuação usando a opção $search
scoreDetails
para o documento nos resultados da query dos operadores text, near, composta e embeddedDocument .
Exemplos de pontuação personalizada
Os exemplos a seguir demonstram como recuperar um detalhamento da pontuação usando a opção $search
scoreDetails
para o documento nos resultados da query de exemplo de expressão em relação à collection sample_mflix.movies
.