I am trying to boost particular documents based on a field value. It is generally working ok but some documents return a higher score even though they have a smaller boost v
You'll want to create a custom Similarity which overrides the tf and idf methods, and use it in place of the DefaultSimilarity.
Something like:
class CustomSimilarity extends DefaultSimilarity {
@Override
public float tf(float freq) {
return 1.0;
}
@Override
public float tf(int freq) {
return 1.0;
}
@Override
// Note the signature of this method may now take longs:
// public float idf(long docFreq, long numDocs)
public float idf(int docFreq, int numDocs) {
return 1.0;
}
}
The set it to use that similarity in your schema.xml:
<similarity class="myorg.mypackage.CustomSimilarity"/>