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 Object implements InputIterator
Implements InputIterator from stored fields.
  • Field Details

    • docCount

      private final int docCount
    • relevantFields

      private final Set<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 Set<BytesRef> currentContexts
    • weightValues

      private final NumericDocValues weightValues
    • currentDocFields

      IndexableField[] currentDocFields
    • nextFieldsPosition

      int nextFieldsPosition
  • Constructor Details

    • DocumentInputIterator

      public DocumentInputIterator(boolean hasPayloads, boolean hasContexts) throws IOException
      Creates an iterator over term, weight and payload fields from the lucene index. setting withPayload to false, implies an iterator over only term and weight.
      Throws:
      IOException
  • Method Details

    • weight

      public long weight()
      Description copied from interface: InputIterator
      A term's weight, higher numbers mean better suggestions.
      Specified by:
      weight in interface InputIterator
    • next

      public BytesRef next() throws IOException
      Description copied from interface: BytesRefIterator
      Increments the iteration to the next BytesRef 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.
      Specified by:
      next in interface BytesRefIterator
      Returns:
      the next BytesRef in the iterator or null if the end of the iterator is reached.
      Throws:
      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. See Lookup.LookupResult.payload to retrieve the payload for each suggestion.
      Specified by:
      payload in interface InputIterator
    • hasPayloads

      public boolean hasPayloads()
      Description copied from interface: InputIterator
      Returns true if the iterator has payloads
      Specified by:
      hasPayloads in interface InputIterator
    • getWeight

      protected long getWeight(Document doc, int docId) throws IOException
      Returns the value of the weightField for the current document. Retrieves the value for the weightField if it's stored (using doc) or if it's indexed as NumericDocValues (using docId) for the document. If no value is found, then the weight is 0.
      Throws:
      IOException
    • getRelevantFields

      private Set<String> getRelevantFields(String... fields)
    • 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 interface InputIterator
    • hasContexts

      public boolean hasContexts()
      Description copied from interface: InputIterator
      Returns true if the iterator has contexts
      Specified by:
      hasContexts in interface InputIterator