実現したいこと
more_this_thisクエリを使ってブログメディアの関連記事を抽出するシステムを作っております。その中で以下の仕様を実現したいと考えています。
- 特定の単語が本文に存在している記事はmore_this_thisの結果に出さない
- 特定の単語が本文に存在している記事のmore_this_thisの結果のスコアをあげたい
現在試している方法
1に関してはstop_wordsのオプションを。2に関してはboost_termsのオプションを使用することで実現出来ると考え以下の様なクエリを作りました。
"more_like_this" : {
"fields" : ["post_title","post_content"],
"like_text" : "{記事本文}",
"stop_words":["禁止ワード1","禁止ワード2","禁止ワード3"]
"min_term_freq" : 1,
"max_query_terms" : 50,
"boost": 30.0
}
##質問内容
結果としてstop_wordsで指定した語句が含まれた記事は排除されず。boost_termsに至っては特定の単語を設定するような仕様になっていないようで使い方そのものが不明な状態です。公式のドキュメントも目を通しましたが、ちょっと解決の目処が立たない状況です。
もしかするとstop_wordsとboost_termsオプションに対する私の解釈から間違っているのではないかと考えております。この辺り助言をいただけますと幸いです。
Elasticsearchのバージョン
2.3