諸行無常

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になる

最低限の.vimrc

" setting
"文字コードをUFT-8に設定
set fenc=utf-8
" バックアップファイルを作らない
set nobackup
" スワップファイルを作らない
set noswapfile
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 入力中のコマンドをステータスに表示する
set showcmd


" 見た目系
" 行番号を表示
set number
" 現在の行を強調表示
set cursorline
" 現在の行を強調表示(縦)
set cursorcolumn
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" インデントはスマートインデント
set smartindent
" ビープ音を可視化
set visualbell
" 括弧入力時の対応する括弧を表示
set showmatch
" ステータスラインを常に表示
set laststatus=2
" コマンドラインの補完
set wildmode=list:longest
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj
nnoremap k gk
" シンタックスハイライトの有効化
syntax enable


" Tab系
" 不可視文字を可視化(タブが「▸-」と表示される)
set list listchars=tab:\▸\-
" Tab文字を半角スペースにする
set expandtab
" 行頭以外のTab文字の表示幅(スペースいくつ分)
set tabstop=2
" 行頭でのTab文字の表示幅
set shiftwidth=2


" 検索系
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>