Another thing to note is that this patch does not completely solve all the problems caused by the new Collectors using Sentinels.

The bigger question is, what to do in general about -Inf and NaN scores.

There are different ways we could handle this:

1) They are not valid, but all other scores are valid. This is actually problematic, since individual queries may be in compliance, but when combined (in say a boolean query), produce a -Inf. So in practice, this would prohibit "large" negative scores. Not great since it's ill-defined and no one knows exactly where the limit is.

2) Consider -Inf (and maybe NaN) as valid scores and change the sorting Collectors to handle them.

The problem is twofold: a query with only zero boosts on it's clauses results in a query norm of infiinity, and a normalization factor for the query of NaN (0*Inf). This has always been the case. But our new collectors cannot handle these score values and mess up - for example returning docids equal to the sentinal value Integer.MAX_VAL.