I am trying to 'muck' with document scores from Lucene. I have
certain business rules where I have a field named 'domainScore' within
my index. The 'domainScore' value is a float. What I want to do is
add this value to the document sub query score from the Lucene search.
I have implemented a CustomScoreQuery that receives an instance of a
FieldScoreQuery which defines the fieldName 'domainScore' and the
value being type float:
//helper method that creates my query
final Query query = createQuery("content", criteria);
//create a new instance of my custom score query
CustomScoreQuery customScoreQuery = new DomainCustomScoreQuery(query,
new FieldScoreQuery("domainScore", FieldScoreQuery.Type.FLOAT));
//this extends CustomScoreQuery
public DomainCustomScoreQuery(final Query query, final
ValueSourceQuery valueSourceQuery) {
super(query, valueSourceQuery);
}
@Override
public float customScore(final int doc, final float subQueryScore,
final float valSrcScore) {
final float totalScore;
//shouldn't the valSrcScore be my 'domainScore' value?
//don't worry about the calculateScore, that is where I do some
calculations based on the lucene document score and my domainScore
totalScore = calculateScore(subQueryScore, valSrcScore);
return totalScore;
}
So, that seems easy enough. The issue I have is the valSrcScore is
not the value of the 'domainScore' I have in the index. For instance,
my 'domainScore' field value for the document returned is '15.83' but
the 'valSrcScore' passed to the customScore method is '8.614598'.
What am I missing? The examples seem easy enough.
Thanks for your time,
Briggs.
--
"Conscious decisions by conscious minds are what make reality real"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]