Java lucene 5.3中的术语频率评分

Java lucene 5.3中的术语频率评分,java,lucene,Java,Lucene,在ApacheLucene5.3中,我只想使用术语频率对结果进行排名。我试图重写DefaultSimilarity类,但它似乎在Lucene 5.3中不起作用。我正在使用以下代码: import org.apache.lucene.search.similarities.DefaultSimilarity; public class TfSimilarity extends DefaultSimilarity { public TfSimilarity(){} public f

在ApacheLucene5.3中,我只想使用术语频率对结果进行排名。我试图重写DefaultSimilarity类,但它似乎在Lucene 5.3中不起作用。我正在使用以下代码:

import org.apache.lucene.search.similarities.DefaultSimilarity;

public class TfSimilarity extends DefaultSimilarity {
    public TfSimilarity(){}
    public float idf(int docFreq, int numDocs) {
      return(float)1.0;
    }
    public float coord(int overlap, int maxOverlap) {
      return 1.0f;
    }
    public float lengthNorm(String fieldName, int numTerms) {
      return (float) numTerms;
    }

}
此外,程序似乎没有进入上面的idf函数。

您没有正确重写。应该是:

@Override
public float idf(long docFreq, long numDocs){}
您应该使用带注释的
@Override
,以确保方法定义正确

您没有正确覆盖。应该是:

@Override
public float idf(long docFreq, long numDocs){}
您应该使用带注释的
@Override
,以确保方法定义正确