MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /

$score(集計)

バージョン8.2の新機能

$score

$score は新しいスコアを計算し、メタデータとして返します。オプションとして、入力スコアを正規化します。デフォルトでは 0 から 1 の範囲で正規化します。

このステージの構文は、次のとおりです。

{
$score: {
score: <expression>,
scoreDetails: <boolean>,
normalization: "none|sigmoid|minMaxScaler",
weight: <expression>
}
}

$score は、次のフィールドがあります。

フィールド
タイプ
説明

score

入力スコアから新しい値を計算し、その値を$meta キーワードscore に保存します。数値以外の入力の場合はエラーを返します。

scoreDetails

ブール値

falseデフォルトは です。$score $scoreDetailsが各出力ドキュメントの メタデータフィールドを計算して入力するかどうかを指定します。このフィールドの詳細については、「 スコアの詳細 」を参照してください。

normalization

文字列

任意。スコアを 0 から 1 の範囲に正規化します。値は次のとおりです。

  • none - 正規化されません。

  • sigmoid - 次の $sigmoid 式を適用します 。

    1 / (1 + e^-x)

    ここで、x は正規化するスコアです。

    省略した場合、デフォルトは none になります。

  • minMaxScaler - $minMaxScalerウィンドウ関数を適用するには次のようにします。

    (s - min_s) / (max_s - min_s)

    以下の条件に一致するもの。

    • s は、スコアです。

    • min_s は、最小スコアです。

    • max_s は、最大スコアです。

weight

Double

任意。正規化後に score式に乗じる数値。

$score からの出力ドキュメントは入力ドキュメントと同じですが、メタデータとして追加の計算スコアが含まれています。

パイプラインで複数の $score ステージを指定した場合、パイプラインの最後の $score ステージが前の $score ステージのスコアメタデータを上書きします。

scoreDetailstrue に設定すると、$score は各ドキュメントに対して scoreDetailsメタデータフィールドを作成します。scoreDetailsフィールドには最終ランキングに関する情報が含まれています。

注意

scoreDetailstrue に設定すると、$score は各ドキュメントの scoreDetailsメタデータフィールドを設定しますが、scoreDetails メタフィールドは自動的に出力しません。

scoreDetailsメタデータフィールドを表示するには、次のいずれかを行う必要があります。

  • $score の後に $project ステージを使用して scoreDetailsフィールドをプロジェクト

  • $score の後に $addFields ステージを使用して、パイプライン出力に scoreDetailsフィールドを追加する

scoreDetailsフィールドには次のサブフィールドが含まれています。

フィールド
説明

value

計算されたスコア。

description

$score operationMetrics が最終スコアを計算する方法を説明する string形式の説明。

rawScore

重み付けされていない未加工(正規化されていない)スコア。

normalization

次の正規化値のいずれか: "none"、"sigmoid"、"minMaxScaler" 。

weight

入力パイプラインの重み。範囲 [0,1] 内である必要があります。

expression

string形式の $score.score の値。

details

空の配列($score は入力パイプラインを取ることができません。

警告

MongoDB、scoreDetails の特定の出力形式は保証されません。

例、次のコード ブロックは、$add式を使用した $score操作の scoreDetailsフィールドを示しています。

{
_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: []
}
},

戻る

$sample

項目一覧