我有三个食品类型指标,“意大利”,“西班牙”和“美国”。当用户搜索“奶酪”时,“意大利”文档似乎排在首位。如果我更偏好于“西班牙”,是否可能“提升”结果?(我仍然应该得到“意大利”的结果,但基于某些数值提升值为“西班牙”索引类型的结果,返回结果中的文件排序将优先考虑“西班牙”的索引。这在用户输入的Lucene和/或ES查询中是可能的吗?如果可能,怎么实现?
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
}
}'
使用script_score作为函数得分查询的一部分:
function_score: {
script_score: {
script: "doc['_type'].value == '<your _type>' ? _score * <boost_factor> : _score"
}
}
"script": "doc['_type'].value == '35' ? _score * 2 : _score"
,结果出现了 Query Failed [Failed to execute main query]]; nested: GroovyScriptExecutionException[MissingPropertyException[No such property: _type for class: Script4]]
。 - navins