Class CompletionFieldsConsumer

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    final class CompletionFieldsConsumer
    extends FieldsConsumer
    Weighted FSTs for any indexed SuggestField is built on write(Fields,NormsProducer). A weighted FST maps the analyzed forms of a field to its surface form and document id. FSTs are stored in the CompletionDictionary (.lkp).

    The file offsets of a field's FST are stored in the CompletionIndex (.cmp) along with the field's internal number FieldInfo.number on close().

    • Constructor Detail

      • CompletionFieldsConsumer

        CompletionFieldsConsumer​(java.lang.String codecName,
                                 PostingsFormat delegatePostingsFormat,
                                 SegmentWriteState state)
                          throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • write

        public void write​(Fields fields,
                          NormsProducer norms)
                   throws java.io.IOException
        Description copied from class: FieldsConsumer
        Write all fields, terms and postings. This the "pull" API, allowing you to iterate more than once over the postings, somewhat analogous to using a DOM API to traverse an XML tree.

        Notes:

        • You must compute index statistics, including each Term's docFreq and totalTermFreq, as well as the summary sumTotalTermFreq, sumTotalDocFreq and docCount.
        • You must skip terms that have no docs and fields that have no terms, even though the provided Fields API will expose them; this typically requires lazily writing the field or term until you've actually seen the first term or document.
        • The provided Fields instance is limited: you cannot call any methods that return statistics/counts; you cannot pass a non-null live docs when pulling docs/positions enums.
        Specified by:
        write in class FieldsConsumer
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class FieldsConsumer
        Throws:
        java.io.IOException