public boolean lessThan(ShardRef first, ShardRef second) {assert first != second;final FieldDoc firstFD = (FieldDoc) shardHits[first.shardIndex][first.hitIndex];final FieldDoc secondFD = (FieldDoc) shardHits[second.shardIndex][second.hitIndex];for(int compIDX=0;compIDX<comparators.length;compIDX++) {final FieldComparator comp = comparators[compIDX];final int cmp = reverseMul[compIDX] * comp.compareValues(firstFD.fields[compIDX], secondFD.fields[compIDX]);if (cmp != 0) {return cmp < 0;}}return tieBreakLessThan(first, firstFD, second, secondFD, tieBreaker);}

protected internal override bool LessThan(ShardRef first, ShardRef second){Debug.Assert(first != second);FieldDoc firstFD = (FieldDoc)shardHits[first.ShardIndex][first.HitIndex];FieldDoc secondFD = (FieldDoc)shardHits[second.ShardIndex][second.HitIndex];for (int compIDX = 0; compIDX < comparers.Length; compIDX++){FieldComparer comp = comparers[compIDX];int cmp = reverseMul[compIDX] * comp.CompareValues(firstFD.Fields[compIDX], secondFD.Fields[compIDX]);if (cmp != 0){return cmp < 0;}}if (first.ShardIndex < second.ShardIndex){return true;}else if (first.ShardIndex > second.ShardIndex){return false;}else{Debug.Assert(first.HitIndex != second.HitIndex);return first.HitIndex < second.HitIndex;}}
