Class Lucene41PostingsWriter

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

    public final class Lucene41PostingsWriter
    extends PostingsWriterBase
    Concrete class that writes docId(maybe frq,pos,offset,payloads) list with postings format. Postings list for each term will be stored separately.
    See Also:
    for details about skipping setting and postings layout.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addPosition​(int position, BytesRef payload, int startOffset, int endOffset)
      Add a new position & payload
      void close()  
      void encodeTerm​(long[] longs, DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute)
      Encode metadata as long[] and byte[].
      void finishDoc()
      Called when we are done adding positions & payloads for each doc.
      void finishTerm​(BlockTermState _state)
      Called when we are done adding docs to this term
      void init​(IndexOutput termsOut)
      Called once after startup, before any terms have been added.
      org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter.IntBlockTermState newTermState()
      Return a newly created empty TermState
      int setField​(FieldInfo fieldInfo)
      Sets the current field for writing, and returns the fixed length of long[] metadata (which is fixed per field), called when the writing switches to another field.
      void startDoc​(int docID, int termDocFreq)
      Adds a new doc in this term.
      void startTerm()
      Start a new term.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Lucene41PostingsWriter

        public Lucene41PostingsWriter​(SegmentWriteState state,
                                      float acceptableOverheadRatio)
                               throws java.io.IOException
        Creates a postings writer with the specified PackedInts overhead ratio
        Throws:
        java.io.IOException
      • Lucene41PostingsWriter

        public Lucene41PostingsWriter​(SegmentWriteState state)
                               throws java.io.IOException
        Creates a postings writer with PackedInts.COMPACT
        Throws:
        java.io.IOException
    • Method Detail

      • newTermState

        public org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter.IntBlockTermState newTermState()
        Description copied from class: PostingsWriterBase
        Return a newly created empty TermState
        Specified by:
        newTermState in class PostingsWriterBase
      • init

        public void init​(IndexOutput termsOut)
                  throws java.io.IOException
        Description copied from class: PostingsWriterBase
        Called once after startup, before any terms have been added. Implementations typically write a header to the provided termsOut.
        Specified by:
        init in class PostingsWriterBase
        Throws:
        java.io.IOException
      • setField

        public int setField​(FieldInfo fieldInfo)
        Description copied from class: PostingsWriterBase
        Sets the current field for writing, and returns the fixed length of long[] metadata (which is fixed per field), called when the writing switches to another field.
        Specified by:
        setField in class PostingsWriterBase
      • startDoc

        public void startDoc​(int docID,
                             int termDocFreq)
                      throws java.io.IOException
        Description copied from class: PostingsConsumer
        Adds a new doc in this term. freq will be -1 when term frequencies are omitted for the field.
        Specified by:
        startDoc in class PostingsConsumer
        Throws:
        java.io.IOException
      • addPosition

        public void addPosition​(int position,
                                BytesRef payload,
                                int startOffset,
                                int endOffset)
                         throws java.io.IOException
        Add a new position & payload
        Specified by:
        addPosition in class PostingsConsumer
        Throws:
        java.io.IOException
      • finishDoc

        public void finishDoc()
                       throws java.io.IOException
        Description copied from class: PostingsConsumer
        Called when we are done adding positions & payloads for each doc.
        Specified by:
        finishDoc in class PostingsConsumer
        Throws:
        java.io.IOException
      • finishTerm

        public void finishTerm​(BlockTermState _state)
                        throws java.io.IOException
        Called when we are done adding docs to this term
        Specified by:
        finishTerm in class PostingsWriterBase
        Throws:
        java.io.IOException
      • encodeTerm

        public void encodeTerm​(long[] longs,
                               DataOutput out,
                               FieldInfo fieldInfo,
                               BlockTermState _state,
                               boolean absolute)
                        throws java.io.IOException
        Description copied from class: PostingsWriterBase
        Encode metadata as long[] and byte[]. absolute controls whether current term is delta encoded according to latest term. Usually elements in longs are file pointers, so each one always increases when a new term is consumed. out is used to write generic bytes, which are not monotonic. NOTE: sometimes long[] might contain "don't care" values that are unused, e.g. the pointer to postings list may not be defined for some terms but is defined for others, if it is designed to inline some postings data in term dictionary. In this case, the postings writer should always use the last value, so that each element in metadata long[] remains monotonic.
        Specified by:
        encodeTerm in class PostingsWriterBase
        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 PostingsWriterBase
        Throws:
        java.io.IOException