es默认使用搜索词可进行文档匹配,并根据TF-IDF算法进行打分排序, 但想要自定义ES排序规则,是需要做score的自定义计算的,而TF-IDF计算得分并不是十分重要, 这里做queryBool时只做文档召回功能,我们使用function_score来进行自定义打分,boost_mode可设置为replace,这样我们自定义的函数执行策略就会取代掉默认TF-IDF分值。
自定义的分值规则如下:
1 商家在精准通平台投入系数(也就是通过花钱投广告而算出的权重值,这个是京准通后台算出的),该值有5个等级(根据投放频率)分别数值为1,2,3,4,5,权重系数0.2,最多加1分。
2 商品好评率:0~1 ,权重系数为2,最多加2分。我们选商品时更关注是否高品质。
3 商家评分:5个等级,权重系数0.2,最多加1分。
4 重点扶植商家(一但被标记为扶持商家,最低等级score也会多1分):扶持分为5个等级,权重系数5,该权重影响比较大。
通过以上4个策略:score_mode:"sum"的方式做score加和。