public override void Collect(int doc)
{
_fromDocTerms.Get(doc, _spare);
int ord = _collectedTerms.Add(_spare);
if (ord < 0)
{
ord = -ord - 1;
}
else
{
if (ord >= _scoreSums.Length)
{
_scoreSums = ArrayUtil.Grow(_scoreSums);
_scoreCounts = ArrayUtil.Grow(_scoreCounts);
}
}
float current = _scorer.Score();
float existing = _scoreSums[ord];
if (existing.CompareTo(0.0f) == 0)
{
_scoreSums[ord] = current;
_scoreCounts[ord] = 1;
}
else
{
_scoreSums[ord] = _scoreSums[ord] + current;
_scoreCounts[ord]++;
}
}