Lucene基础排序算法改进

原创 2005年05月01日 15:10:00
Lucene基础排序算法:

score_d = sum_t(tf_q * idf_t / norm_q * tf_d * idf_t / norm_dt_t)


score_d: Document(d) 的得分
sum_t: Term(t) 的总和
tf_q: 查询中 t 的频度的平方根
tf_q: d 中 t 的频度的平方根
idf_t: log(numDocs/docFreq_t + 1) + 1.0
numDocs: 索引中Document的数量
docFreq_t: 包含t的Document的数量
norm_q: sqrt(sum_t((tf_q*idf_t)^2))
norm_d_t: 在与 t 相同域的 d 中 tokens 数量的平方根

基础排序算法的不足

要点:
    查询词在一个 Document 中的位置并不重要。
    如果一个 Document 中含有该查询词的次数越多,该得分越高。
    一个命中document中,如果除了该查询词之外,其他的词越多,该得分越少。

不足:
    查询精确度不好。
    没有体现网页的重要性。
    Lucene的得分算法, 不适合网页搜索。

改进的算法:
    Score_d = k1 * OldScore + k2 * PrScore + k3 * ReScore + k4 * homePageScore

    Score_d: 记录d的得分。
    OldScore: 由基础排序算法计算出的记录d的得分。
    PrScore: 记录d的PageRank的得分。
    ReScore: 记录d的二次检索的加分, ReScore = rescore + (hitNum - 1) * increment
    homePageScore: 主页的加分
    K1, K2, K3, K4为权重系数

    PR(A) = (1 - d) + d(PR(1) / C(1) + ... + PR(n)/C(n))

    PageRank, 二次检索, 以及主页加分的调整确实优化了查询精确度。

lucene 排序算法思路

关于搜索引擎搜索结果排序的一点看法:(1)        lucene 的评分机制见公式,通过   setBoost方法来改变文档的的boost因子 ,作为新文档的得分。        与搜索相关的...
  • lyflower
  • lyflower
  • 2007年03月02日 16:07
  • 5339

Lucene基础排序算法

公式为:score_d = sum_t(tf_q * idf_t / norm_q * tf_d * idf_t / norm_dt_t)score_d: Document(d) 的得分sum_t: ...
  • redez
  • redez
  • 2005年11月17日 23:49
  • 4059

数据结构实践——归并排序算法的改进

本文是针对[数据结构基础系列(9):排序]的项目。【项目 - 归并排序算法的改进】   采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂...
  • sxhelijian
  • sxhelijian
  • 2015年12月01日 15:36
  • 2640

Lucene的排序算法

公式:   1                      tf(t in d) term frequency与term的出现次数(frequency)有关系(correlate to),定义为(def...
  • thundersssss
  • thundersssss
  • 2009年09月16日 16:12
  • 5248

六种主要排序算法分析和改进方法(附带相应java程序)

进CSDN也有挺久时间了,一开始的目的只是想下点代码,后来逐渐发现CSDN上的博客很不错,看得多了,就也有了写博客的想法。这算是我的第一篇博客了吧,从最基本的开始,多有不足,还请谅解。文章中的图片是网...
  • u010896929
  • u010896929
  • 2015年03月27日 15:17
  • 657

【BZOJ4534】基础排序算法练习题

#以后看见这种题目名字2B的我直接绕道走 #%%%策爷 #讲道理这种论文题我都没脸写题解 主要工作分为两部分,一部分是在(n^2+m)log(n)内预处理完所有操作,用一个序列代表所有可以被成功...
  • qq_34637390
  • qq_34637390
  • 2016年05月04日 22:10
  • 1207

Lucene相关度排序的调整

如欲转载,请注明作者:caocao,来源http://blog.csdn.net/nethermit/,欢迎大家讨论Lucene的搜索结果默认按相关度排序,这个相关度排序是基于内部的Score和Doc...
  • nethermit
  • nethermit
  • 2007年01月12日 12:38
  • 1796

Lucene中使用Score进行自然排序

Lucene中使用Score进行自然排序
  • u012965373
  • u012965373
  • 2015年04月03日 08:48
  • 1245

将BM25 用作lucene排序算法的实现步骤

BM25算法的介绍:http://en.wikipedia.org/wiki/Okapi_BM25 BM25算法一直是被用作代替lucene的TFIDF的评分公式的。 首先给出BM25的相关度计算...
  • lwm_1985
  • lwm_1985
  • 2011年08月02日 19:40
  • 6262

排序算法(二)——选择排序及改进

选择排序 基本思想 冒泡排序中有一个缺点,比如,我们比较第一个数a1与第二个数a2的时候,只要a1比a2大就会交换位置,但是我们并不能确定a2是最小的元素,假如后面还有比它更小的,该元素还会与a2...
  • u012152619
  • u012152619
  • 2015年08月06日 00:03
  • 2168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lucene基础排序算法改进
举报原因:
原因补充:

(最多只允许输入30个字)