如何理解SQL Server中的Ranking
2008-02-20 09:52:56 来源:WEB开发网WeightedSum = Σ[key=1 to n] ContainsRankKey * WeightKey
Rank = ( MaxQueryRank * WeightedSum ) / ( ( Σ[key=1 to n] ContainsRankKey2 )
+ ( Σ[key=1 to n] WeightKey2 ) - ( WeightedSum ) )
FREETEXT中的排序Ranking
FREETEXT排名是基于对奥卡皮BM25排名公式计算得出的。 FREETEXT查询会增加关键字并间接生成到查询(间接形式的原始查询词),这些关键词被当作独立个体分别加以处理,而从它们所派生出的同义词也被视作相同权重计算。每个关键词在查询中的统计将直接影响到排序Rank值。
Rank = Σ[Terms in Query] w ( ( ( k1 + 1 ) tf ) / ( K + tf ) ) * ( ( k3 + 1 ) qtf / ( k3 + qtf ) ) )
注:
W是Robertson-Sparck Jones的权重。
在这个公司中,w被定义为:
w = log10 ( ( ( r + 0.5 ) * ( N – R + r + 0.5 ) ) / ( ( R – r + 0.5 ) * ( n – r + 0.5 ) )
N:被查询的property计算的索引行数。
n:包含关键字Word的行数。
K is ( k1 * ( ( 1 – b ) + ( b * dl / avdl ) ) ).
dl:property长度,关键字 word出现的次数。
Avdl:被查询的property平均长度,在关键字出现的次数。
k1, b, and k3 分别为常量1.2, 0.75, and 8.0。
tf:在特定行中出现的在查询property中的频率字。
Rank = Σ[Terms in Query] w ( ( ( k1 + 1 ) tf ) / ( K + tf ) ) * ( ( k3 + 1 ) qtf / ( k3 + qtf ) ) )
注:
W是Robertson-Sparck Jones的权重。
在这个公司中,w被定义为:
w = log10 ( ( ( r + 0.5 ) * ( N – R + r + 0.5 ) ) / ( ( R – r + 0.5 ) * ( n – r + 0.5 ) )
更多精彩
赞助商链接