我有文件:
{
"_id": 111,
"price": 1000,
"color": "red",
}
我将Gauss函数与function_score一起使用,以按价格获取得分。 现在,如果color ==“ green”,我需要添加+30分数。最好不使用groovy脚本。 但是,如果颜色!=“绿色”,那么即使没有这些额外的30分得分,仍然可以得到该文档的结果。 有朝哪个方向看的想法?
谢谢
答案 0 :(得分:1)
您可以使用Constant Score
为与该查询匹配的文档提供固定的分数,并将其放在should
子句下,因此不是强制性的。
例如:
{
"query": {
"bool": {
"should": [
{
"function_score": {
"functions": [
{
"gauss": {
"price": {
"origin": "100",
"scale": "10"
}
}
}
]
}
},
{
"constant_score": {
"filter": {
"match": {
"color": {
"value": "red"
}
}
},
"boost": 30
}
}
]
}
}
}