public class SortedInputIterator extends java.lang.Object implements InputIterator
InputIterator.InputIteratorWrapper| Modifier and Type | Field and Description |
|---|---|
private java.util.Comparator<BytesRef> |
comparator |
private java.util.Set<BytesRef> |
contexts |
private boolean |
done |
private boolean |
hasContexts |
private boolean |
hasPayloads |
private BytesRef |
payload |
private OfflineSorter.ByteSequencesReader |
reader |
private InputIterator |
source |
private Directory |
tempDir |
private java.lang.String |
tempFileNamePrefix |
private IndexOutput |
tempInput |
private java.lang.String |
tempSortedFileName |
private java.util.Comparator<BytesRef> |
tieBreakByCostComparator
Sortes by BytesRef (ascending) then cost (ascending).
|
private long |
weight |
EMPTY| Constructor and Description |
|---|
SortedInputIterator(Directory tempDir,
java.lang.String tempFileNamePrefix,
InputIterator source)
Creates a new sorted wrapper, using natural order
for sorting.
|
SortedInputIterator(Directory tempDir,
java.lang.String tempFileNamePrefix,
InputIterator source,
java.util.Comparator<BytesRef> comparator)
Creates a new sorted wrapper, sorting by BytesRef
(ascending) then cost (ascending).
|
| Modifier and Type | Method and Description |
|---|---|
private void |
close() |
java.util.Set<BytesRef> |
contexts()
A term's contexts context can be used to filter suggestions.
|
protected long |
decode(BytesRef scratch,
ByteArrayDataInput tmpInput)
decodes the weight at the current position
|
protected java.util.Set<BytesRef> |
decodeContexts(BytesRef scratch,
ByteArrayDataInput tmpInput)
decodes the contexts at the current position
|
protected BytesRef |
decodePayload(BytesRef scratch,
ByteArrayDataInput tmpInput)
decodes the payload at the current position
|
protected void |
encode(OfflineSorter.ByteSequencesWriter writer,
ByteArrayDataOutput output,
byte[] buffer,
BytesRef spare,
BytesRef payload,
java.util.Set<BytesRef> contexts,
long weight)
encodes an entry (bytes+(contexts)+(payload)+weight) to the provided writer
|
boolean |
hasContexts()
Returns true if the iterator has contexts
|
boolean |
hasPayloads()
Returns true if the iterator has payloads
|
BytesRef |
next()
Increments the iteration to the next
BytesRef in the iterator. |
BytesRef |
payload()
An arbitrary byte[] to record per suggestion.
|
private OfflineSorter.ByteSequencesReader |
sort() |
long |
weight()
A term's weight, higher numbers mean better suggestions.
|
private final InputIterator source
private IndexOutput tempInput
private java.lang.String tempSortedFileName
private final OfflineSorter.ByteSequencesReader reader
private final java.util.Comparator<BytesRef> comparator
private final boolean hasPayloads
private final boolean hasContexts
private final Directory tempDir
private final java.lang.String tempFileNamePrefix
private boolean done
private long weight
private BytesRef payload
private java.util.Set<BytesRef> contexts
private final java.util.Comparator<BytesRef> tieBreakByCostComparator
public SortedInputIterator(Directory tempDir, java.lang.String tempFileNamePrefix, InputIterator source) throws java.io.IOException
java.io.IOExceptionpublic SortedInputIterator(Directory tempDir, java.lang.String tempFileNamePrefix, InputIterator source, java.util.Comparator<BytesRef> comparator) throws java.io.IOException
java.io.IOExceptionpublic BytesRef next() throws java.io.IOException
BytesRefIteratorBytesRef in the iterator.
Returns the resulting BytesRef or null if the end of
the iterator is reached. The returned BytesRef may be re-used across calls
to next. After this method returns null, do not call it again: the results
are undefined.next in interface BytesRefIteratorBytesRef in the iterator or null if
the end of the iterator is reached.java.io.IOException - If there is a low-level I/O error.public long weight()
InputIteratorweight in interface InputIteratorpublic BytesRef payload()
InputIteratorLookup.LookupResult.payload to retrieve the payload
for each suggestion.payload in interface InputIteratorpublic boolean hasPayloads()
InputIteratorhasPayloads in interface InputIteratorpublic java.util.Set<BytesRef> contexts()
InputIteratorcontexts in interface InputIteratorpublic boolean hasContexts()
InputIteratorhasContexts in interface InputIteratorprivate OfflineSorter.ByteSequencesReader sort() throws java.io.IOException
java.io.IOExceptionprivate void close()
throws java.io.IOException
java.io.IOExceptionprotected void encode(OfflineSorter.ByteSequencesWriter writer, ByteArrayDataOutput output, byte[] buffer, BytesRef spare, BytesRef payload, java.util.Set<BytesRef> contexts, long weight) throws java.io.IOException
java.io.IOExceptionprotected long decode(BytesRef scratch, ByteArrayDataInput tmpInput)
protected java.util.Set<BytesRef> decodeContexts(BytesRef scratch, ByteArrayDataInput tmpInput)
protected BytesRef decodePayload(BytesRef scratch, ByteArrayDataInput tmpInput)