Lucene系列三之相关度排名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/itsoftchenfei/article/details/83109730

前面已经对Lucene的基本内容有一个相关的了解,特别是反向索引 ,接下来将重点介绍下相关度排名。

1. 什么是相关度排名

直观理解搜索结果精准由高到低

如:要查询 苍老师、tony、火锅有关的新闻:
含有三个关键字(相关度最高)的新闻排前面,含两个关键字(相关度次之)排次之,含一个关键字 的排次次之。

当然,这是由一个算法完成的。

2. 如何设计相关性模型

利用出现次数来建立模型

规则1: 统计出现次数,根据次数从高到低排

{{1,5},{5,3},{12,1},{8,1}}:文章1出现5次,文章5出现3次,文章12出现1次,文章8出现1次。问题:标题中出现苍老师,与新闻的内容中出现苍老师,哪个是专门写苍老师的相关度高些?

规则2:加入权重,标题权重10,内容权重1,计算权重得分,按高-低排序

{{1,23},{12,10},{5,3},{8,1}},总结:利用出现次数来建立模型这个相关性模型很简单。有时排序会不是很准确。

复杂的相关性计算模型有:

  • TF/IDF和字段长度准则(长度越长,相关性越低),即检索词频率【检索词在该字段出现的频率】/反向文档频率【检索词在索引中出现的频率】,具体参参阅es-search
  • 向量空间模型
  • 贝叶斯概率模型,如:BM25

搜索引擎中会提供一种、或多种实现供选择使用,电商网站中的搜索相关性计算会考虑更多,更复杂。

猜你喜欢

转载自blog.csdn.net/itsoftchenfei/article/details/83109730