諸行無常

IT色々お勉強中のブログ

elastic search スコアリング

ElasticSearchはsortが入っているとスコア順ソートにならない

sortをクエリから抜くとスコア順ソートになる

function_scoreを使うとドキュメントに対して自分でスコアをつけることができる

以下スコアリング設定方法

特定のフィールドによってスコアを上げる

ドキュメントのフィールド値をそのままスコアに利用出来る

  • Decay functions

ドキュメントのスコアを調整するために減少関数利用出来る

減少関数は、基準日、基準の数値、基準の位置に対して離れれば任意の値でスコアを減少させていく関数

原点を決めて、原点から離れるとどれくらい減衰するかの程度を決めたりする

  • weight

scoreに提供されたweightを掛けることが出来る 重みづけを変えることが出来る。

スコアを上げたい項目のweightを上げたりする

  • Ramdom

ランダムな数値を返す

  • Script Score

他のnumber型のfieldの値を使ってscore計算をカスタマイズできる

計算式を自分でかけるっぽい

  • functions内で複数の条件を組み合わせることが出来る

  • boost_mode、score_mode -> スコア演算で使用

    boost_mode queryでの検索結果によるスコアとfuctions内のスコア合算計算の種類分け

  • multiply

queryのスコアとfunctionsのスコアの掛け算の結果をスコアとして返す (記述がない場合これがデフォルト設定)

function_scoreのスコア = boost_mode(queryスコア * boost, functionsスコア)

  • replace

queryのスコアを破棄し、functionsのスコアのみを使用する

  • sum

queryのスコアとfunctionsのスコアを加算した結果をスコアとして返す

queryのスコアとfunctionsのスコアの平均の結果をスコアとして返す

  • max

queryのスコアとfunctionsのスコアの大きい方を結果として返す score_mode functions内の各項目の計算方法決め

  • multiply

functions内の各項目のスコアの掛け算の結果をスコアとして返す (記述がない場合これがデフォルト設定)

  • sum

functionsのスコアを足し算

  • ave

functions内の各項目のスコアの平均とした結果をスコアとして返す

  • first

functions内の各項目の最初に計算されたものを返す

  • max

functions内の各項目のスコアの最大値を結果をスコアとして返す

  • max_boost

計算後のスコアにリミット付けれる例:10を指定すると10以上のスコアつかない

  • boost

クエリのスコアを上げる?2だと×2になる