Affects Version/s: 5.3.1, 5.4.1
Fix Version/s: 6.2
If any kind of similarity is defined and therefore the SchemaSimilarityFactory is defined as global similarity the queryNorm is always 1.0
The PerFieldSimilarityWrapper delegates some of the methods to the desired Similarity but misses to delegate public float queryNorm(float valueForNormalization)
Instead the IndexReader calls this method on the base class Similarity.
The result is that all scores are much higher.
I created a custom similarity which extends ClassicSimilarity.
To have the calculation fixed I did a local "hotfix" which always uses the default similarity. Also wrong for some cases but fine in my scenario.
public float queryNorm(float valueForNormalization)