elasticsearch docs巧妙地描述了如何创建具有高斯衰减曲线的查询。例如,按价格排序的最小尺寸物业评分系统:
{
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{"range": {"total_square_foot": {"gte": "600"}}}
]
}
},
"functions": [
{"filter" : {"match": {"pets_allowed" : true}}, "weight": 1},
{"gauss": {"price": {"origin": "0", "offset": "100000", "scale": "50000", "decay" : 0.4}}, "weight": 2}
],
"score_mode": "sum"
}
}
}
现在,我想向函数的线性组合中添加total_square_foot
的高斯梯度,但是随着高斯函数的增加,因为更好的空间(即score(x0=0, x1=1000) ~= (0, 1)
是否可以使用内置函数,还是必须使用自定义函数并手动计算参数?