我想只使用术语频率来对Apache Lucene 5.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函数。
答案 0 :(得分:0)
您没有正确覆盖the method。它应该是:
@Override
public float idf(long docFreq, long numDocs){}
您应该使用带注释的@Override
来确保您已正确获得方法定义。