Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBMongoDB Atlas

Retorne os Detalhes da Pontuação

Nesta página

  • Sintaxe
  • Opções
  • Saída
  • Fatores que contribuem para a pontuação
  • Exemplos
  • Exemplos de operador
  • Exemplos de pontuação personalizada

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 .

{
"$search": {
"<operator>": {
<operator-specification>
},
"scoreDetails": true | false
}
},
{
"$project": {
"scoreDetails": {"$meta": "searchScoreDetails"}
}
}

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 como true, 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.

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 : BM25Similarity + distance decay function.

Observação

O value de nível superior mostra toda a pontuação do documento de resultado e é igual ao valor de $searchScore.

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ção

O description de nível superior mostra toda a fórmula de pontuação usada para pontuar o documento.

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.

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:

log(1 + (N - n + 0.5) / (n + 0.5))

onde:

  • N é o número total de documentos com o campo.

  • n é o número de documentos que contêm o termo.

tf

Frequência do termo. Atlas Search calcula a frequência utilizando a seguinte fórmula:

freq / (freq + k1 * (1 - b + b * dl / avgdl))

onde:

  • freq é o número de ocorrências do termo no documento.

  • k1 é o parâmetro de saturação do termo que é especificado internamente. Isso afeta o quanto a pontuação aumenta com cada recorrência do termo.

  • avgdl é o comprimento médio do campo em todos os documentos.

  • dl é o comprimento do campo no documento.

  • b é o parâmetro de normalização de comprimento que também é definido internamente. b é multiplicado pela proporção de dl para avgdl. Se b aumentar, os efeitos da proporção de dl para avgdl serão ampliados.

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.

Os exemplos a seguir mostram como recuperar os detalhes das pontuações nos resultados para o seguinte:

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)

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 .

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 .

← Modificar a Pontuação