我开始工作的简历检索(文件)组件的基础上lucene.net网站引擎。它工作得很好,它获取文档并根据
查询项出现在
该术语出现在所有
收藏的文件越多
该文件与
Lucene的实际评分函数如下所示。
score(q,d)=coord(q,d)·queryNorm(q)· â( tf(t in d) ·idf(t)2 · t.getBoost() · norm(t,d) )
t in q
-
tf(t在d中)
-
以色列国防军(t)
表示逆文档频率。此值与docFreq的倒数(出现术语t的文档数)相关。这意味着稀有词对总分的贡献更大。
这在大多数情况下确实是非常大的,但是由于fieldnorm的计算结果并不准确
fieldnorm又名“field length norm”值表示该文档中该字段的长度(因此较短的字段会自动增大)。
因此我们没有得到准确的结果。
例如,我有10000个文档,其中3000个文档包含java和oracle关键字。它在每个文档上出现的次数也各不相同。
-
-
如果我在搜索一个查询“java和oracle”,lucene返回的docb得分很高
由于长度标准化。
由于业务的性质我们需要检索得到的文档更多,搜索关键字的出现应该排在第一位,我们并不真正关心文档的长度。
为了避免这种情况,我需要禁用长度规范化。有人能帮我吗??
我已附上卢克的结果图像供您参考。
在这幅图中,使用java 50次和oracle 6次的文档下移到第11位。
但是,由于fieldnorm的原因,这个包含24次java和5次oracle的文档是最好的。
希望我传达的信息清楚。。。如果没有请问我,我会给更多的信息