我想创建一个lucene自定义得分函数,它将存储在文档中的值添加到最终得分中。Lucene自定义得分
我已经想出了如何给评分函数添加一个值,但我无法设法将文档的存储值存入方法中。
class CustomizedScoreProvider extends CustomScoreProvider {
public CustomizedScoreProvider(LeafReaderContext reader) {
super(reader);
// TODO Auto-generated constructor stub
}
public float customScore(int doc, float subQueryScore,float valSrcScores[]){
try {
subQueryScore+=4; \\ I only added this for testing ,
} catch(Exception e) { \\ I want to add a value that is stored in a field of a document
e.printStackTrace();
}
return subQueryScore;
}
}
class CustomizedScoreQuery extends CustomScoreQuery{
public CustomizedScoreQuery(Query subQuery,IndexReader ireader) {
super(subQuery);
// TODO Auto-generated constructor stub
}
public CustomizedScoreProvider getCustomScoreProvider (LeafReaderContext reader){
CustomizedScoreProvider i=new CustomizedScoreProvider(reader);
return (i);
}
}