我在文档中有一个排名的字段:值越低,它应该具有的分数越高。成为第一是最好的,但是最后是最糟糕的。所以排名1优于100万。
到目前为止,我已经能够使用score_query and field_value_factor提升字段值本身,但它为文档提供了更高数字的排名更高的提升。
"field_value_factor": {
"field": "rank",
"factor": 1.2,
"modifier": "sqrt",
"missing": 1
}
我应该使用不同的修饰符吗?或者我是否完全错了?此外,我不想单独对它进行排序,因为我有其他因素影响_score
。
答案 0 :(得分:1)
你实际上需要采用一个修饰函数来回传rank
值,即1 / rank
,这样等级越高,值越低,rank = 1
将得分为1.唯一一个得分为reciprocal
"field_value_factor": {
"field": "rank",
"factor": 1.2,
"modifier": "reciprocal",
"missing": 1
}