Lucene的评分(score)
2012-05-09 14:14 yuejianjun 阅读(443) 评论(0) 编辑 收藏 举报
在Lucene中score简单说是由 tf * idf * boost * lengthNorm*coord(q,d)计算得出的。
tf:是查询的词在文档中出现的次数的平方根
idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。 Term t在几篇文档中出现过 ,对于一个特定的搜索词,该值是一个定值,对所有文档都一样,就不会影响打分。
boost:激励因子,可以通过setBoost方法设置,需要说明的通过field和doc都可以设置,所设置的值会同时起作用
tf:是查询的词在文档中出现的次数的平方根
idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。 Term t在几篇文档中出现过 ,对于一个特定的搜索词,该值是一个定值,对所有文档都一样,就不会影响打分。
boost:激励因子,可以通过setBoost方法设置,需要说明的通过field和doc都可以设置,所设置的值会同时起作用
lengthNorm:是由搜索的field的长度决定了,越长文档的分值越低。 lengthNorm(field) = (1.0 / Math.sqrt(numTerms)):一个域中包含的Term总数越多,也即文档越长,此值越小,文档越短,此值越大。
coord(q,d):一次搜索可能包含多个搜索词,而一篇文档中也可能包含多个搜索词,此项表示,当一篇文档中包含的搜索词越多,则此文档则打分越高。
Lucene的打分机制是采用向量空间模型
向量相乘=在一条向量上两个向量模相乘
http://www.cnblogs.com/forfuture1978/archive/2010/03/07/1680007.html