Novidades na versão 8.2.
Definição
Sintaxe
O estágio tem a seguinte sintaxe:
{ $score: { score: <expression>, scoreDetails: <boolean>, normalization: "none|sigmoid|minMaxScaler", weight: <expression> } }
Campos
$score usa os seguintes campos:
Campo | Tipo | Descrição | ||
|---|---|---|---|---|
| Expressão | Calcula um novo valor a partir das pontuações de entrada e armazena o valor na palavra-chave | ||
| Boolean | O padrão é | ||
| String | Opcional. Normaliza a pontuação para o intervalo de
| ||
| Double | Opcional. Número pelo qual multiplicar a expressão |
Comportamento
Os documentos de saída de um $score são iguais aos documentos de entrada, mas incluem pontuação computada adicional como metadados.
Se você especificar vários estágios $score no pipeline, o último estágio $score no pipeline substituirá os metadados de pontuação dos estágios $score anteriores.
detalhes da pontuação
Se você definir scoreDetails como true, $score criará um campo de metadados scoreDetails para cada documento. O campo scoreDetails contém informações sobre a classificação final.
Observação
Quando você define scoreDetails como true, $score define o campo de metadados scoreDetails para cada documento , mas não gera automaticamente o metacampo scoreDetails.
Para visualizar o campo de metadados scoreDetails, você deve:
usar um
$projectestágio após$scorepara projetar o camposcoreDetailsuse um
$addFieldsestágio após$scorepara adicionar o camposcoreDetailsà saída do pipeline
O campo scoreDetails contém os seguintes subcampos:
Campo | Descrição |
|---|---|
| A pontuação calculada. |
| Uma descrição no formato de string que explica como o operationMetrics do |
| A pontuação bruta não ponderada (não normalizada). |
| Um dos seguintes valores de normalização: "none", "sagmoid", "minMaxScaler". |
| O peso do pipeline de entrada, que deve estar na faixa [0,1]. |
| O valor de |
| Uma array vazia, pois |
Aviso
O MongoDB não garante nenhum formato de saída específico para scoreDetails.
Por exemplo, os seguintes blocos de código mostram o campo scoreDetails para uma operação $score com uma expressão $add:
{ _id: ObjectId('55f5a192d4bede9ac365b257'), scoreDetails: { value: 0.5, description: 'the score calculated from multiplying a weight in the range [0,1] with either a normalized or nonnormalized value:', rawScore: 145, normalization: 'sigmoid', weight: 0.5, expression: '{ string: { $add: [ 'field', 'myField' ] } }', details: [] } },