请高手帮忙写1下lucene3.0自定义排序接口的列子,不要lucene2.9版本的

解决方案 »

  1.   

    呵呵,我也在找啊..
    最好是
    http://summerbell.javaeye.com/blog/455865
    的实现.
    楼主找到了吗
      

  2.   

    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.0numDocs: 索引中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) * incrementhomePageScore: 主页的加分K1, K2, K3, K4为权重系数