Package org.apache.lucene.search.suggest
Class SortedInputIterator
java.lang.Object
org.apache.lucene.search.suggest.SortedInputIterator
- All Implemented Interfaces:
InputIterator,BytesRefIterator
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
ConstructorsConstructorDescriptionSortedInputIterator(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
Modifier and TypeMethodDescriptioncontexts()A term's contexts context can be used to filter suggestions.protected longdecode(BytesRef scratch, ByteArrayDataInput tmpInput) decodes the weight at the current positiondecodeContexts(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 writerbooleanReturns true if the iterator has contextsbooleanReturns true if the iterator has payloadsnext()payload()An arbitrary byte[] to record per suggestion.longweight()A term's weight, higher numbers mean better suggestions.
-
Constructor Details
-
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 Details
-
next
- 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
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
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
decodes the weight at the current position -
decodeContexts
decodes the contexts at the current position -
decodePayload
decodes the payload at the current position
-