2012-08-29 37 views
2

我希望Lucene評分函數根據文檔的長度沒有偏差。這真的是一個後續問題Calculate the score only based on the documents have more occurance of term in luceneLucene評分函數 - 偏向較短的文檔

我想知道Field.setOmitNorms(true)是如何工作的?我看到有兩個因素使得短文件得到了很高的分數:

  1. 「助推」較短長的職位 - 在規範的定義使用doc.getBoost()
  2. 「lengthNorm」(T, d)

Here is the documentation

我想知道 - 如果我想向更短的文件沒有偏見,是Field.setOmitNorms(真)就夠了嗎?

+0

查找到自定義相似的實現(從DefaultSimilarity派生並重寫LengthNorm,TF,以色列國防軍和用於其他功能分數計算),它可以幫助您進一步瞭解過程。 – sisve

+0

我們有同樣的效果,並與Field.setOmitNorms(真)設置的相似運作良好,\t \t \t searcher.setSimilarity(新DefaultSimilarity(){ \t \t \t \t @覆蓋 \t \t \t \t公衆持股量TF(浮動頻率){ \t \t \t \t \t返回1; \t \t \t \t} \t \t \t});這會關閉計數條款並考慮文件長度。 – fricke

回答

0

當您使用TF-IDF評分時,較短的文檔意味着更相關。

您可以在Lucene中使用您的自定義評分函數。它很容易定製評分算法。子類DefaultSimilarity並覆蓋您想要自定義的方法。

有一個代碼示例here,這將幫助你實現它