我有三个食物类型指数“意大利”、“西班牙”、“美国”。当用户搜索“Cheese”时,来自“Italian”的文档似乎出现在顶部。如果我倾向于说“西班牙语”,是否有可能“提升”结果?(我仍然应该得到意大利语的结果,但是基于索引类型“西班牙语”的一些数字提升值,结果中返回的文档的排序优先于“西班牙语”索引。这在用户输入 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
您可以设置的属性。或者,您可以将查询包装在自定义 boost factor中。通常,我可能更喜欢前者。
于 2013-07-18T17:00:31.073 回答