我有三种食物类型指数“意大利语”,“西班牙语”,“美国人”。 当用户搜索“Cheese”时,来自“Italian”的文档似乎出现在顶部。如果我优先说“西班牙语”,是否有可能“提升”结果? (我仍然应该得到意大利语的结果,但根据索引类型“西班牙语”的一些数字提升值,结果中返回的文档的顺序优先于“西班牙语”索引。这是否可能在用户输入lucene和/或ES查询?如果是,怎么做?
答案 0 :(得分:6)
答案 1 :(得分:4)
使用script_score作为功能得分查询的一部分:
function_score: {
script_score: {
script: "doc['_type'].value == '<your _type>' ? _score * <boost_factor> : _score"
}
}
答案 2 :(得分:3)
如果一次查询多个索引,可以在传递给Search API的对象的顶层指定indices boost:
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
}
}'
答案 3 :(得分:0)
对于查询时间提升,查询(例如query string)通常具有您可以设置的boost
属性。或者,您可以将查询包装在custom boost factor中。我通常更喜欢前者。