「イタリアン」、「スペイン料理」、「アメリカン」の 3 つの食品タイプ インデックスがあります。ユーザーが「チーズ」を検索すると、「イタリア語」のドキュメントが一番上に表示されます。私が「スペイン語」と言うのを優先した場合、結果を「ブースト」することは可能ですか? (私はまだイタリア語の結果を取得する必要がありますが、インデックス タイプ「スペイン語」の数値ブースト値に基づいて、結果で返されるドキュメントの順序は「スペイン語」インデックスを優先します。これはユーザー入力の lucene および/で可能ですか?またはESクエリ?もしそうなら、どのように?
質問する
3082 次
4 に答える
4
複数のインデックスを一度にクエリする場合、Search API に渡されるオブジェクトのトップ レベルでインデックス ブーストを指定することができます。
curl -XGET localhost:9200/italian,spanish,american/_search -d '
{
"query":{"term":{"food_type":"cheese"}},
"indices_boost" : {
"ilalian" : 1.4,
"spanish" : 1.3,
"american" : 1.1
}
}'
于 2014-10-27T01:34:29.770 に答える
4
関数スコア クエリの一部として script_score を使用します。
function_score: {
script_score: {
script: "doc['_type'].value == '<your _type>' ? _score * <boost_factor> : _score"
}
}
于 2014-07-23T18:05:36.897 に答える
0
クエリ時のブースティングでは、通常、クエリ (クエリ文字列boost
など) に設定可能な属性があります。または、カスタム ブースト ファクターでクエリをラップすることもできます。通常、私はおそらく前者を好むでしょう。
于 2013-07-18T17:00:31.073 に答える