private static final class SortingLeafReader.SortingPostingsEnum.DocOffsetSorter extends TimSorter
TimSorter
which sorts two parallel arrays of doc IDs and
offsets in one go. Everytime a doc ID is 'swapped', its corresponding offset
is swapped too.Modifier and Type | Field and Description |
---|---|
private int[] |
docs |
private long[] |
offsets |
private int[] |
tmpDocs |
private long[] |
tmpOffsets |
Constructor and Description |
---|
DocOffsetSorter(int maxDoc) |
Modifier and Type | Method and Description |
---|---|
protected int |
compare(int i,
int j)
Compare entries found in slots
i and j . |
protected int |
compareSaved(int i,
int j)
Compare element
i from the temporary storage with element
j from the slice to sort, similarly to
Sorter.compare(int, int) . |
protected void |
copy(int src,
int dest)
Copy data from slot
src to slot dest . |
void |
reset(int[] docs,
long[] offsets) |
protected void |
restore(int i,
int j)
Restore element
j from the temporary storage into slot i . |
protected void |
save(int i,
int len)
Save all elements between slots
i and i+len
into the temporary storage. |
protected void |
swap(int i,
int j)
Swap values at slots
i and j . |
comparePivot, setPivot
private int[] docs
private long[] offsets
private final int[] tmpDocs
private final long[] tmpOffsets
public void reset(int[] docs, long[] offsets)
protected int compare(int i, int j)
Sorter
i
and j
.
The contract for the returned value is the same as
Comparator.compare(Object, Object)
.protected void swap(int i, int j)
Sorter
i
and j
.protected void copy(int src, int dest)
TimSorter
src
to slot dest
.protected void save(int i, int len)
TimSorter
i
and i+len
into the temporary storage.protected void restore(int i, int j)
TimSorter
j
from the temporary storage into slot i
.protected int compareSaved(int i, int j)
TimSorter
i
from the temporary storage with element
j
from the slice to sort, similarly to
Sorter.compare(int, int)
.compareSaved
in class TimSorter