Solr打分算法

检索模型也就是文档和查询词的相关度的评分方法。Lucene使用布尔模型来确定哪些文档匹配上查询词,使用向量空间模型(VSM)来对这些文档评分。

核心

评分算法中的向量空间模型使用Tf-idf计算权重,对给定的词t和文档x,Tf(t,x)的值和词t在x中出现的次数正相关,而idf(t)的值和索引文档集合中包含词t的次数负相关。

 

相关名词

tf/词频 度量一个文档里词出现的频率

idf/逆向文件频率 度量一个词出现在索引中的频率

coord 文档中发现的查询词的频率

lengthNorm 根据索引列中的词总数来衡量一个词的重要度

queryNorm 归一化的参数便于比较查询

boost(index) 索引时的域的加权

boost(query) 查询时的域的加权

 

tf

函数: sqrt(freq)

意义: 一个词在文档里出现的频率越高,则该文档的分值越高

说明: 多次包含同一个词的文档的相关度更高

 

idf

函数: log(numDocs(docFreq+1) +1

意义: 一个词越多出现在不同的文档里,则它的分值越低

说明: 常见词的重要性要低于不常见的词

 

coord

函数: overlap/maxOverlap

意义: 对于查询中的词,文档中包含这些词越多分值越高

说明: 分值高的文档要更多地覆盖查询中的词

 

lengthNorm

函数: 1/sqrt(numTerms)

意义: 如果匹配上包含较少词的索引列中的词,则这个文档有较高的权重

说明: 如果一个词在含有少量词的列中,则它比在包含较多词的列中的词更重要

 

queryNorm

函数: 1/sqrt(sumOfSquaredWeights)

意义: 和文档的相关性无关,只是为了让不同的查询之间的分值有可比性

 

总结

打分算法为了达到如下效果:

包含所有搜索词的文档是好的

匹配很少出现的词比常用词更好

长文档不如短文档好

多次提及搜索词的文档更好

从正常逻辑看,基本符合预期,但是对长文档的打低分有点奇怪。于是,Lucene允许你定义min/max,指定你认为的文档长度应该是什么范围,在这个区间,lengthNorm都是1.0,低于最小值或高于最大值,lengthNorm会以几何形式下降。

---------------------

 

Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎 课程特点毕业后接触的第一个中间件就是Solr,在工作中用处广泛,为了便于大家快速掌握该技能,开始录制相关课程,该专栏特点如下:1.采用Solr最新版本视频录制,全网最新课程(Solr8.1于2019年5月16日发布)2.技能点全网最全,会结合工作经验,项目中用到的技能点都会有所涉及,更新章节比较全面3.适用范围广,从零基础到高级架构以及分布式集群都涵盖,适用初级、高级、项目实战等多个层次开发者4.多种维度辅助学习,采用独立solr粉丝群辅助教学,学员问题会及时得到解决,程序员突破圈 打卡制度,督促学员学习关注后再购买、 关注后再购买、 关注后再购买课程能得到什么1.快速学习到最新版本的全文检索技术,从视频、文章、圈子、粉丝交流等快速促进学习2.通过该技术,获得面试进阶指导3.结交人脉(庞大的粉丝群)..End初期学员100人,价格不会太高,也是为了帮助更多的开发者但是个人精力有限,所以限制条件如下1.求知欲强,有想向技术更深一层了解的2.乐于交流,喜欢探讨技术者3.学习惰性者慎入,购买后会督促大家学习,购买不是目的,学习到该技能才是该专栏的主要目的正式进入学习状态了吗,专栏群见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值