score_mode: score_mode参数是functionscore内的一组设置的打分方式,默认为multiply也就是相乘,即一组funtionscore内的几项设置打分结果相乘,为了避免系数威力过大,建议设置为sum boost_mode: score_mode是设置查询外部打分与functionscore之间的模式,默认也为multiply,设置为sum max_boost 除上述两种模式可以设置之外,...
要排除不满足某个分数阈值的文档,可以将 min_score 参数设置为所需的分数阈值。 参数score_mode 指定如何组合计算的分数: multiply 相乘 (default) sum 求和 avg 平均分 first 使用具有匹配过滤器的第一个函数的得分 max 使用最高分 ...
],//max_boost表示自定义的函数的分数不能超过指定分数"max_boost": 100,//总评分的评分规则:score_mode为自定义的函数(functions)的计算规则,boost_mode为查询分数和函数分数的计算规则//方法中分数的最低分为1(即即使设置权重为0,或者filter结果完全不匹配,仍然会返回结果1(即按理结果因当为0时)。其他结果...
score_mode设置为了max,意思是取两个打分函数的最大值作为func_score,对应上述假设也就是 2.3 和 42 两者中的最大值,即func_score= 42 boost_mode设置为了multiply,就是把原来的query_score与func_score相乘就得到了最终的 score 分数。 参数score_mode指定多个打分函数如何组合计算出新的分数: •multiply: 分数...
"score_mode": "max", "boost_mode": "multiply", 备注:function_score query 的用法非常多,适用场景也比较广,比如说:1)通过文档中的字段值影响相关度,比如可以让博客的点赞数越多,相关度越高;2)随机分数【可应用于千人千面】;3)根据距离参考值的衰减函数计算相关度,比如说地理位置查询,距离参考点越远的,...
从每个单独的函数而来的得分是如何合并的,这被称为score_mode。 从函数而来的得分是如何同原始查询得分合并的,这被称为boost_mode。 Q: score_mode的主要作用呢 A: 把多个结果缩减为1个结果,然后和_score进行合并。 A: 每个函数返回一个结果,所以需要一种将多个结果缩减到单个值的方式,然后才能将其与原始评分...
new_score = old_score * log(1 + factor * number_of_votes) 当factor大于1时,会增加其影响力,而小于1的factor则相应减小了其影响力,如下图所示: boost_mode 将全文搜索的相关度分值乘以field_value_factor函数的结果,对最终分值的影响可能太大了。通过boost_mode参数,我们可以控制函数的结果应该如何与_score...
"function_score": { "query": { "match": { "title": "elasticsearch" } } <!-- 设置自定义打分函数,这里先省略,后面再展开讲解 --> "boost_mode": "multiply" } } } 最终搜索结果 score 的计算过程就是: 执行query得到原始的分数,与上文假设对应,即query_score分别是0.3、0.2、0.1。
"5", "functions": [ { "filter": { "match": { "test": "bar" } }, "random_score": {}, "weight": 23 }, { "filter": { "match": { "test": "cat" } }, "weight": 42 } ], "max_boost": 42, "score_mode": "max", "boost_mode": "multiply", "min_score" : 42 }...
"score_mode": "max", "boost_mode": "multiply", "min_score": 42 } } } score_mode 参数决定 filter 条件过滤之后打分的文档,它们之间如何结合成一个总分数。以上面示例:filter match "bar" 对命中的文档计算出一个分数,它用的 score 函数是 random_score。filter match "cat" 对命中的文档计算出一...