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 longdecode(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 BytesRefdecodePayload(BytesRef scratch, ByteArrayDataInput tmpInput)decodes the payload at the current positionprotected voidencode(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 writerbooleanhasContexts()Returns true if the iterator has contextsbooleanhasPayloads()Returns true if the iterator has payloadsBytesRefnext()BytesRefpayload()An arbitrary byte[] to record per suggestion.longweight()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:
nextin interfaceBytesRefIterator- Throws:
IOException
-
weight
public long weight()
Description copied from interface:InputIteratorA term's weight, higher numbers mean better suggestions.- Specified by:
weightin interfaceInputIterator
-
payload
public BytesRef payload()
Description copied from interface:InputIteratorAn arbitrary byte[] to record per suggestion. SeeLookup.LookupResult.payloadto retrieve the payload for each suggestion.- Specified by:
payloadin interfaceInputIterator
-
hasPayloads
public boolean hasPayloads()
Description copied from interface:InputIteratorReturns true if the iterator has payloads- Specified by:
hasPayloadsin interfaceInputIterator
-
contexts
public Set<BytesRef> contexts()
Description copied from interface:InputIteratorA term's contexts context can be used to filter suggestions. May return null, if suggest entries do not have any context- Specified by:
contextsin interfaceInputIterator
-
hasContexts
public boolean hasContexts()
Description copied from interface:InputIteratorReturns true if the iterator has contexts- Specified by:
hasContextsin 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
-
-