org.apache.lucene.codecs.lucene41
Class Lucene41PostingsWriter

java.lang.Object
  extended by org.apache.lucene.codecs.PostingsConsumer
      extended by org.apache.lucene.codecs.PostingsWriterBase
          extended by org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter
All Implemented Interfaces:
Closeable

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
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
 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 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

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 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:
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

startTerm

public void startTerm()
Description copied from class: PostingsWriterBase
Start a new term. Note that a matching call to PostingsWriterBase.finishTerm(BlockTermState) 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(BlockTermState _state)
                throws IOException
Called when we are done adding docs to this term

Specified by:
finishTerm in class PostingsWriterBase
Throws:
IOException

encodeTerm

public void encodeTerm(long[] longs,
                       DataOutput out,
                       FieldInfo fieldInfo,
                       BlockTermState _state,
                       boolean absolute)
                throws 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:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close in class PostingsWriterBase
Throws:
IOException


Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.