ElasticSearchはsortが入っているとスコア順ソートにならない
function_scoreを使うとドキュメントに対して自分でスコアをつけることができる
以下スコアリング設定方法
特定のフィールドによってスコアを上げる
ドキュメントのフィールド値をそのままスコアに利用出来る
ドキュメントのスコアを調整するために減少関数利用出来る
減少関数は、基準日、基準の数値、基準の位置に対して離れれば任意の値でスコアを減少させていく関数
原点を決めて、原点から離れるとどれくらい減衰するかの程度を決めたりする
scoreに提供されたweightを掛けることが出来る
重みづけを変えることが出来る。
スコアを上げたい項目のweightを上げたりする
ランダムな数値を返す
他のnumber型のfieldの値を使ってscore計算をカスタマイズできる
計算式を自分でかけるっぽい
queryのスコアとfunctionsのスコアの掛け算の結果をスコアとして返す (記述がない場合これがデフォルト設定)
function_scoreのスコア = boost_mode(queryスコア * boost, functionsスコア)
queryのスコアを破棄し、functionsのスコアのみを使用する
queryのスコアとfunctionsのスコアを加算した結果をスコアとして返す
queryのスコアとfunctionsのスコアの平均の結果をスコアとして返す
queryのスコアとfunctionsのスコアの大きい方を結果として返す
score_mode functions内の各項目の計算方法決め
functions内の各項目のスコアの掛け算の結果をスコアとして返す (記述がない場合これがデフォルト設定)
functionsのスコアを足し算
functions内の各項目のスコアの平均とした結果をスコアとして返す
functions内の各項目の最初に計算されたものを返す
functions内の各項目のスコアの最大値を結果をスコアとして返す
計算後のスコアにリミット付けれる例:10を指定すると10以上のスコアつかない
クエリのスコアを上げる?2だと×2になる