バージョン8.2の新機能。
定義
構文
このステージの構文は、次のとおりです。
{ $score: { score: <expression>, scoreDetails: <boolean>, normalization: "none|sigmoid|minMaxScaler", weight: <expression> } }
フィールド
$score は、次のフィールドがあります。
フィールド | タイプ | 説明 | ||
|---|---|---|---|---|
| 式 | 入力スコアから新しい値を計算し、その値を | ||
| ブール値 |
| ||
| 文字列 | 任意。スコアを
| ||
| Double | 任意。正規化後に |
動作
$score からの出力ドキュメントは入力ドキュメントと同じですが、メタデータとして追加の計算スコアが含まれています。
パイプラインで複数の $score ステージを指定した場合、パイプラインの最後の $score ステージが前の $score ステージのスコアメタデータを上書きします。
スコア詳細
scoreDetails を true に設定すると、$score は各ドキュメントに対して scoreDetailsメタデータフィールドを作成します。scoreDetailsフィールドには最終ランキングに関する情報が含まれています。
注意
scoreDetails を true に設定すると、$score は各ドキュメントの scoreDetailsメタデータフィールドを設定しますが、scoreDetails メタフィールドは自動的に出力しません。
scoreDetailsメタデータフィールドを表示するには、次のいずれかを行う必要があります。
$scoreの後に$projectステージを使用してscoreDetailsフィールドをプロジェクト$scoreの後に$addFieldsステージを使用して、パイプライン出力にscoreDetailsフィールドを追加する
scoreDetailsフィールドには次のサブフィールドが含まれています。
フィールド | 説明 |
|---|---|
| 計算されたスコア。 |
|
|
| 重み付けされていない未加工(正規化されていない)スコア。 |
| 次の正規化値のいずれか: "none"、"sigmoid"、"minMaxScaler" 。 |
| 入力パイプラインの重み。範囲 [0,1] 内である必要があります。 |
| string形式の |
| 空の配列( |
警告
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: [] } },