Package org.apache.lucene.search.suggest
Class SortedInputIterator
- java.lang.Object
-
- org.apache.lucene.search.suggest.SortedInputIterator
-
- All Implemented Interfaces:
InputIterator
,BytesRefIterator
public class SortedInputIterator extends Object implements InputIterator
This wrapper buffers incoming elements and makes sure they are sorted based on given comparator.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.lucene.search.suggest.InputIterator
InputIterator.InputIteratorWrapper
-
-
Field Summary
-
Fields inherited from interface org.apache.lucene.search.suggest.InputIterator
EMPTY
-
-
Constructor Summary
Constructors Constructor Description SortedInputIterator(Directory tempDir, String tempFileNamePrefix, InputIterator source)
Creates a new sorted wrapper, using natural order for sorting.SortedInputIterator(Directory tempDir, String tempFileNamePrefix, InputIterator source, Comparator<BytesRef> comparator)
Creates a new sorted wrapper, sorting by BytesRef (ascending) then cost (ascending).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 positionprotected Set<BytesRef>
decodeContexts(BytesRef scratch, ByteArrayDataInput tmpInput)
decodes the contexts at the current positionprotected BytesRef
decodePayload(BytesRef scratch, ByteArrayDataInput tmpInput)
decodes the payload at the current positionprotected void
encode(OfflineSorter.ByteSequencesWriter writer, ByteArrayDataOutput output, byte[] buffer, BytesRef spare, BytesRef payload, Set<BytesRef> contexts, long weight)
encodes an entry (bytes+(contexts)+(payload)+weight) to the provided writerboolean
hasContexts()
Returns true if the iterator has contextsboolean
hasPayloads()
Returns true if the iterator has payloadsBytesRef
next()
BytesRef
payload()
An arbitrary byte[] to record per suggestion.long
weight()
A term's weight, higher numbers mean better suggestions.
-
-
-
Constructor Detail
-
SortedInputIterator
public SortedInputIterator(Directory tempDir, String tempFileNamePrefix, InputIterator source) throws IOException
Creates a new sorted wrapper, using natural order for sorting.- Throws:
IOException
-
SortedInputIterator
public SortedInputIterator(Directory tempDir, String tempFileNamePrefix, InputIterator source, Comparator<BytesRef> comparator) throws IOException
Creates a new sorted wrapper, sorting by BytesRef (ascending) then cost (ascending).- Throws:
IOException
-
-
Method Detail
-
next
public BytesRef next() throws IOException
- Specified by:
next
in interfaceBytesRefIterator
- Throws:
IOException
-
weight
public long weight()
Description copied from interface:InputIterator
A term's weight, higher numbers mean better suggestions.- Specified by:
weight
in interfaceInputIterator
-
payload
public BytesRef payload()
Description copied from interface:InputIterator
An arbitrary byte[] to record per suggestion. SeeLookup.LookupResult.payload
to retrieve the payload for each suggestion.- Specified by:
payload
in interfaceInputIterator
-
hasPayloads
public boolean hasPayloads()
Description copied from interface:InputIterator
Returns true if the iterator has payloads- Specified by:
hasPayloads
in interfaceInputIterator
-
contexts
public Set<BytesRef> contexts()
Description copied from interface:InputIterator
A term's contexts context can be used to filter suggestions. May return null, if suggest entries do not have any context- Specified by:
contexts
in interfaceInputIterator
-
hasContexts
public boolean hasContexts()
Description copied from interface:InputIterator
Returns true if the iterator has contexts- Specified by:
hasContexts
in interfaceInputIterator
-
encode
protected void encode(OfflineSorter.ByteSequencesWriter writer, ByteArrayDataOutput output, byte[] buffer, BytesRef spare, BytesRef payload, Set<BytesRef> contexts, long weight) throws IOException
encodes an entry (bytes+(contexts)+(payload)+weight) to the provided writer- Throws:
IOException
-
decode
protected long decode(BytesRef scratch, ByteArrayDataInput tmpInput)
decodes the weight at the current position
-
decodeContexts
protected Set<BytesRef> decodeContexts(BytesRef scratch, ByteArrayDataInput tmpInput)
decodes the contexts at the current position
-
decodePayload
protected BytesRef decodePayload(BytesRef scratch, ByteArrayDataInput tmpInput)
decodes the payload at the current position
-
-