设为首页 收藏本站
查看: 1230|回复: 0

[经验分享] 垂直个性化排序之Solr如何支持

[复制链接]

尚未签到

发表于 2018-11-2 06:09:37 | 显示全部楼层 |阅读模式
  需求:
  个性化得分排序:类似Score=
  defaultTextScore*facetA+offlineValue*(1-factorA)
  
  方案:
  目前直接支持的排序、全部候选方案。推荐1
  和2.
  参见样例!
  1:sortby
  (score,
  offlinevalue*fa)
  这里offlinevalue*fa
  中fa可要可不要
  2:sortby
  (score*fa+offlinevalue*fb)
  这里score*fa
  其中fa有很多理解,可要是documentboost或者fieldboost
  或者payload,offline可以是域值
  3:sortby
  (score*offlinevalue*fa)
  这个场景本质上回到了score*fa了,又回到了payload
  或者document或者fieldboost了。
  4:sort
  by(score*payload|doc_boost|field_boost|term_boost|
  queryboost)
  需求背景:文本相关第一位的,在文本相关区分度不大的时候,需要将好的商品、或者服务信息优先排(这里仍然受限第一排序文本相关分限制,如果放弃第一维度,只有第二维度的离线分值,那么文本相关性可能非常糟糕,反应到用户就是关键词
  不显眼,好的离线值一直占住排头,出现饥饿现象)
  进一步扩展,例如topN先不排序,然后按某种方式排序、实现去重的维度的结果。
  
  分析
  1
  最直接,也是推荐的方式。
  3-4一回事,只是实现方式上不同:
  2
  看起来就显得稍微复杂了,其中fa的理解也有多重,
  一种fa不是boost(documentsfieldpayload
  ),而是外部直接传入的。从数学公式角度看一码事。
  Eg
  tf*itf*payload=scorescore*fa
  =tf*itf*payload*fa,
  合并fa8payload
  就是一项信息了,
  同理,offline*fb
  离线计算好就是offline’了,还是offline
  了。这样2
  简化为score+offline了
  从上分析来看,只有2种,要么1
  ,要么2,
  对应2本质是
  score+offlinevalue,所谓的因子只是“逻辑理解”,对应实现来说“完全隐去了”
  
  样例Score+offline
query.set(“defType”,“lucene”);  
query.setQuery(“description:店铺
  
AND _val_:reord_gpa^0.7″);
  
query.setQuery(“description:店铺
  
AND
  
_val_:sum\(reord_gpa,1\)”);
  
query.setQuery(“(description:店铺)^0.3 AND
  
_val_:sum\(reord_gpa,1\)”);
  至于:score
  中的因子,如果固定0.8,然后所有文档都*0.8,实际上就等于没起作用。这个0.8
  可以payload或者doc或者fieldboost引入。
  至于:
  gpa中的因子,如果固定0.2,那么就直接在离线计算时算好
  
  另外
  在3.*版本中
query.setQuery(“title:Aokang”);  
query.add(“sort”,”sum(weight1,query({!dismax qf=title
  
v=’杭州‘}))
  
desc“);
  
query.addField(“title,score,weight1,weight2,query({!dismax
  
qf=title v=’杭州‘}))”);
  
这种新式,是针对局部query得分处理的
  
木有排序计算,直接返回topN,性能考虑
  
query.set(“sort”,”_docid_ asc”);
  注解:BoostQParse,将boost值乘上默认得分上,而一般_val_是将得分add
  到默认文本分上。
  目前基于3.*
  序列,尚不能直接对默认文本分进行引入到function中,在4.*可以引用默认得分的中间参数到function中。
  目前3.*可以将function值加上或者乘上默认文本分(dismax的pb),或者局部query得分作为function的参数
  最基础的payload、documentboost、fieldboost、tf、itf仍然是最本质的因子。
  其他的扩展仍然是围绕他们展开的。本质没有脱离向量模型。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-629501-1-1.html 上篇帖子: Solr DisjunctionMax 注解 下篇帖子: Sql Support within Solr-类Sql的solr搜索实现(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表