给定一个布尔查询,返回的结果要么满足条件,要么不满足条件,结果很多的时候就不太对了,应该按照文档的重要性排序后呈现给用户。
本文引入简单的几种权重计算。
域索引权重计算
我们知道一篇文章除了内容外,还有作者、题目,写作时间等,这就是域。我们可以对文档建立域索引。
建立好域索引后,我们就可以通过域加权。考虑这样的例子,一个文档集包含3个域-author、title和body,考虑查询shakespeare,对于每个域出现则得1分,不出现则得0分。对于该文档集,我们假设三个域的权重分别为g1 = 0.2,g2=0.3,g3=0.5,同时我们可以看出g1+g2+g3=1。如果shakespeare同时出现在title和body域,则该篇文档的得分:
score = g2*0.3 + g3*0.5 = 0.8。根据这个例子,我们就可以通过如下公式计算文档得分:
score = sum(gi * si),gi表示域的权重,si表示文档在该域的得分。
(1)那么如何利用倒排索引求域呢?如下图中,我们首先定义一个scores[100],则 score[1]+=0.5,score[3]+=0.5....
(2)如何利用