org.apache.lucene.codecs.lucene41

## Class Lucene41PostingsWriter

- java.lang.Object
- - org.apache.lucene.codecs.PostingsConsumer
  - - org.apache.lucene.codecs.PostingsWriterBase
    - - org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter

All Implemented Interfaces:
  Closeable, 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.`
WARNING: This API is experimental and might change in incompatible ways in the next release.

### Constructor Summary

Constructors
Constructor and Description
`Lucene41PostingsWriter(SegmentWriteState state)` Creates a postings writer with `PackedInts.COMPACT`
`Lucene41PostingsWriter(SegmentWriteState state, float acceptableOverheadRatio)` Creates a postings writer with the specified PackedInts overhead ratio

### Method Summary

Methods
`void` `addPosition(int position, BytesRef payload, int startOffset, int endOffset)` Add a new position & payload
`void` `close()`
`void` `finishDoc()` Called when we are done adding positions & payloads for each doc.
`void` `finishTerm(TermStats stats)` Called when we are done adding docs to this term
`void` `flushTermsBlock(int start, int count)` Flush count terms starting at start "backwards", as a block.
`void` `setField(FieldInfo fieldInfo)` Called when the writing switches to another field.
`void` `start(IndexOutput termsOut)` Called once after startup, before any terms have been added.
`void` `startDoc(int docID, int termDocFreq)` Adds a new doc in this term.
`void` `startTerm()` Start a new term.

### Methods inherited from class org.apache.lucene.codecs.PostingsConsumer

`merge`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Lucene41PostingsWriter

    public Lucene41PostingsWriter(SegmentWriteState state,
                          float acceptableOverheadRatio)
                           throws IOException

Creates a postings writer with the specified PackedInts overhead ratio

Throws:
  `IOException`

#### Lucene41PostingsWriter

    public Lucene41PostingsWriter(SegmentWriteState state)
                           throws IOException

Creates a postings writer with `PackedInts.COMPACT`

Throws:
  `IOException`

### Method Detail

#### start

    public void start(IndexOutput termsOut)
               throws 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:
  `start` in class `PostingsWriterBase`
Throws:
  `IOException`

#### setField

    public void setField(FieldInfo fieldInfo)

Description copied from class: `PostingsWriterBase`
Called when the writing switches to another field.

Specified by:
  `setField` in class `PostingsWriterBase`

#### startTerm

    public void startTerm()

Description copied from class: `PostingsWriterBase`
Start a new term. Note that a matching call to `PostingsWriterBase.finishTerm(TermStats)` is done, only if the term has at least one document.

Specified by:
  `startTerm` in class `PostingsWriterBase`

#### startDoc

    public void startDoc(int docID,
                int termDocFreq)
                  throws 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:
  `IOException`

#### addPosition

    public void addPosition(int position,
                   BytesRef payload,
                   int startOffset,
                   int endOffset)
                     throws IOException

Add a new position & payload

Specified by:
  `addPosition` in class `PostingsConsumer`
Throws:
  `IOException`

#### finishDoc

    public void finishDoc()
                   throws IOException

Description copied from class: `PostingsConsumer`
Called when we are done adding positions & payloads for each doc.

Specified by:
  `finishDoc` in class `PostingsConsumer`
Throws:
  `IOException`

#### finishTerm

    public void finishTerm(TermStats stats)
                    throws IOException

Called when we are done adding docs to this term

Specified by:
  `finishTerm` in class `PostingsWriterBase`
Throws:
  `IOException`

#### flushTermsBlock

    public void flushTermsBlock(int start,
                       int count)
                         throws IOException

Description copied from class: `PostingsWriterBase`
Flush count terms starting at start "backwards", as a block. start is a negative offset from the end of the terms stack, ie bigger start means further back in the stack.

Specified by:
  `flushTermsBlock` in class `PostingsWriterBase`
Throws:
  `IOException`

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in class `PostingsWriterBase`
Throws:
  `IOException`