Package org.apache.lucene.search.suggest
Class DocumentDictionary.DocumentInputIterator
- java.lang.Object
-
- org.apache.lucene.search.suggest.DocumentDictionary.DocumentInputIterator
-
- All Implemented Interfaces:
InputIterator
,BytesRefIterator
- Direct Known Subclasses:
DocumentValueSourceDictionary.DocumentValueSourceInputIterator
- Enclosing class:
- DocumentDictionary
protected class DocumentDictionary.DocumentInputIterator extends java.lang.Object implements InputIterator
ImplementsInputIterator
from stored fields.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.lucene.search.suggest.InputIterator
InputIterator.InputIteratorWrapper
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<BytesRef>
currentContexts
(package private) IndexableField[]
currentDocFields
private int
currentDocId
private BytesRef
currentPayload
private long
currentWeight
private int
docCount
private boolean
hasContexts
private boolean
hasPayloads
private Bits
liveDocs
(package private) int
nextFieldsPosition
private java.util.Set<java.lang.String>
relevantFields
private NumericDocValues
weightValues
-
Fields inherited from interface org.apache.lucene.search.suggest.InputIterator
EMPTY
-
-
Constructor Summary
Constructors Constructor Description DocumentInputIterator(boolean hasPayloads, boolean hasContexts)
Creates an iterator over term, weight and payload fields from the lucene index.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Set<BytesRef>
contexts()
A term's contexts context can be used to filter suggestions.private java.util.Set<java.lang.String>
getRelevantFields(java.lang.String... fields)
protected long
getWeight(Document doc, int docId)
Returns the value of theweightField
for the current document.boolean
hasContexts()
Returns true if the iterator has contextsboolean
hasPayloads()
Returns true if the iterator has payloadsBytesRef
next()
Increments the iteration to the nextBytesRef
in the iterator.BytesRef
payload()
An arbitrary byte[] to record per suggestion.long
weight()
A term's weight, higher numbers mean better suggestions.
-
-
-
Field Detail
-
docCount
private final int docCount
-
relevantFields
private final java.util.Set<java.lang.String> relevantFields
-
hasPayloads
private final boolean hasPayloads
-
hasContexts
private final boolean hasContexts
-
liveDocs
private final Bits liveDocs
-
currentDocId
private int currentDocId
-
currentWeight
private long currentWeight
-
currentPayload
private BytesRef currentPayload
-
currentContexts
private java.util.Set<BytesRef> currentContexts
-
weightValues
private final NumericDocValues weightValues
-
currentDocFields
IndexableField[] currentDocFields
-
nextFieldsPosition
int nextFieldsPosition
-
-
Constructor Detail
-
DocumentInputIterator
public DocumentInputIterator(boolean hasPayloads, boolean hasContexts) throws java.io.IOException
Creates an iterator over term, weight and payload fields from the lucene index. settingwithPayload
to false, implies an iterator over only term and weight.- Throws:
java.io.IOException
-
-
Method Detail
-
weight
public long weight()
Description copied from interface:InputIterator
A term's weight, higher numbers mean better suggestions.- Specified by:
weight
in interfaceInputIterator
-
next
public BytesRef next() throws java.io.IOException
Description copied from interface:BytesRefIterator
Increments the iteration to the nextBytesRef
in the iterator. Returns the resultingBytesRef
ornull
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.- Specified by:
next
in interfaceBytesRefIterator
- Returns:
- the next
BytesRef
in the iterator ornull
if the end of the iterator is reached. - Throws:
java.io.IOException
- If there is a low-level I/O error.
-
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
-
getWeight
protected long getWeight(Document doc, int docId) throws java.io.IOException
Returns the value of theweightField
for the current document. Retrieves the value for theweightField
if it's stored (usingdoc
) or if it's indexed asNumericDocValues
(usingdocId
) for the document. If no value is found, then the weight is 0.- Throws:
java.io.IOException
-
getRelevantFields
private java.util.Set<java.lang.String> getRelevantFields(java.lang.String... fields)
-
contexts
public java.util.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
-
-