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

[经验分享] solr 排序与文档分数计算

[复制链接]

尚未签到

发表于 2017-12-19 15:36:42 | 显示全部楼层 |阅读模式
  solr
  何为文档?
  solr是一个文档存储与检索引擎,提交给solr处理的每一份数据都是一份文档。在solr的schema文件中我们可以指定字段的名称和类型,一个文档我们通过定义schema,映射为特定类型的字段集合,文档的每个字段都根据其字段类型进行内容分析,分析的结果保存在索引中,这样在发起查询的时候就能检索到相关结果。
  倒排索引:
  在传统的数据库模型中,都是文档映射至内容,而solr使用了索引将内容映射至文档的方式。
DSC0000.png

  模糊查询机制:
  当通配符搜索执行时,倒排索引中的所有词项与第一个通配符之前的查询词部分进行匹配。接下来,检查每个候选词项是否与查询中的通配符模式相匹配。
  一般通配符前指定越多的词查询速度越快,如engineer*的执行花销不大,但是e*执行花销很大。在solr不建议用首位通配符,如*ing,这个会导致严重的性能问题。
  默认相似度:
  solr的相关度得分是基于similarity类的,默认的similarity实现及理论基础如下:
DSC0001.png

  它会去检查词项向量的余弦相似度,如果词项向量的余弦相似度和文档向量的余弦相似度更接近,那么我们认为它们的相似度越高。
  那么如何用构造合理的向量来表征它们呢?
DSC0002.png

  词项频次tf(term frequency):
  我们认为一个查询词项在一个文档中出现的越多,那么我们认为它和这个文档越相关。但是如果一个词在文档中出现10次,我们并不认为相关度应该提高10倍,所以这里开了平方根来减少查询词项多次出现的额外加分。
  反向文档频次idf(inverse document frequency):
  一般来说在查询匹配中我们认为较少见的词比常见的词有更好的区分度,它惩罚了在多个文档中普遍出现的词项。(感觉要视实际情况而定)
  词项权重:
  在实际的搜索中我们不必完全依赖与solr去计算分数,根据我们的一些经验我们可以自己去调节词项的权重,以符合我们的预期。
  规范化因子:
  solr默认的相关度公式计算了三种规范化因子:字段规范、查询规范和协调因子
  (1)字段规范:
DSC0003.png

  其中d.getBoost()为文档的权重,
  f.getBoost()表示字段权重
  lengthNorm(f)表示长度归一参数取值等于字段中词项数量的平方根,目的是消除特定词项在较长文档中出现次数较多的优势,
  (2)查询规范:
  queryNorm应用于所有的文档,它不会影响总体的相关性排序,它仅仅作为查询之间进行比较时得分计算的规范化因子。
  (3)协调因子:
  它的作用是衡量每个文档匹配的查询数量,如果查询词项是4个词,那么如果4个词全匹配到,则协调因子是4/4;匹配到3个,那么协调因子是3/4,以此类推。

运维网声明 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-425743-1-1.html 上篇帖子: Solr vs. Elasticsearch谁是开源搜索引擎王者 下篇帖子: Java搜索引擎选择: Elasticsearch与Solr(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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