我将解释我想要实现的目标: 我希望根据几个参数匹配具有相似健康水平的人:俯卧位代表,上拉代表和深蹲。
假设我的系统中有100名运动员,我需要通过健身水平告诉一个与他最接近的用户,基本上是谁做了与用户一样多的引体向上,俯卧撑和深蹲。
以下是我迄今为止从文档中获得的一个示例。
我遇到问题的部分是为引体上升值提供更多“权重”,这意味着引体数中的紧密匹配比深蹲中的匹配更重要。
{
"query": {
"function_score": {
"functions": [
{
"gauss": {
"pullups": {
"origin": "25",
"scale": "1"
}
}
},
{
"gauss": {
"pushups": {
"origin": "56",
"scale": "2"
}
}
},
{
"gauss": {
"squats": {
"origin": "90",
"scale": "2"
}
}
}
],
"score_mode": "multiply"
}
}
}
也许使用decay
和scale
可以完成工作,但我觉得weight
功能得分正是我需要的?也许我错了?
谢谢!
答案 0 :(得分:0)
好的,我明白了。我只需要在每个功能评分块中添加weight
:
{
"query": {
"function_score": {
"functions": [
{
"gauss": {
"pullups": {
"origin": "25",
"scale": "1"
}
},
"weight": 2
},
{
"gauss": {
"pushups": {
"origin": "56",
"scale": "2"
}
},
"weight": 2
},
{
"gauss": {
"squats": {
"origin": "90",
"scale": "2"
}
},
"weight": 2
}
],
"score_mode": "multiply"
}
}
}