愚者求师之过,智者从师之长。

functionScore 里的scoreMode与boostMode区别有什么区别

Elasticsearch | 作者 bhdweb | 发布于2017年07月15日 | 阅读数:13041

{
"function_score" : {
"query" : {
"bool" : {
"must" : [ {
"term" : {
"isCollect" : 0
}
} ]
}
},
"functions" : [ {
"field_value_factor" : {
"field" : "initScore",
"missing" : 0.0
}
}, {
"exp" : {
"updateTime" : {
"origin" : "now",
"scale" : "1d",
"decay" : 0.8,
"offset" : "1d"
}
}
} ],
"score_mode" : "sum",
"boost_mode" : "sum"
}
}
如上这段代码,最终参与 exp函数的_score是原本的_score还是 _score+
initScore 求指导,另外有人能细说一下score_mode和boost_mode的区别么

已邀请:

kennywu76 - Wood

赞同来自: bhdweb medcl

score_mode定义的是如何将各个function的分值合并成一个综合的分值; boost_mode则定义如何将这个综合的分值作用在原始query产生的分值上。

bhdweb

赞同来自:

好像明白了,exp函数里还是原来的_score参与计算了,而不是前一个function的值即_score+ initScore参与计算了,但是不是很清楚score_mode和boost_mode的区别。大概意思明白,但还有点模糊。boost_mode中作用到field_value_factor,而score_mode是做用于各各function上,不知理解对不对

要回复问题请先登录注册