org.apache.lucene.codecs.pulsing
Class PulsingPostingsWriter

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

public final class PulsingPostingsWriter
extends PostingsWriterBase

Writer for the pulsing format.

Wraps another postings implementation and decides (based on total number of occurrences), whether a terms postings should be inlined into the term dictionary, or passed through to the wrapped writer.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Constructor Summary
PulsingPostingsWriter(int maxPositions, PostingsWriterBase wrappedPostingsWriter)
          If the total number of positions (summed across all docs for this term) is <= maxPositions, then the postings are inlined into terms dict
 
Method Summary
 void addPosition(int position, BytesRef payload, int startOffset, int endOffset)
          Add a new position & payload, and start/end offset.
 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)
           
 void start(IndexOutput termsOut)
           
 void startDoc(int docID, int termDocFreq)
          Adds a new doc in this term.
 void startTerm()
           
 
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

PulsingPostingsWriter

public PulsingPostingsWriter(int maxPositions,
                             PostingsWriterBase wrappedPostingsWriter)
If the total number of positions (summed across all docs for this term) is <= maxPositions, then the postings are inlined into terms dict

Method Detail

start

public void start(IndexOutput termsOut)
           throws IOException
Specified by:
start in class PostingsWriterBase
Throws:
IOException

startTerm

public void startTerm()
Specified by:
startTerm in class PostingsWriterBase

setField

public void setField(FieldInfo fieldInfo)
Specified by:
setField 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
Description copied from class: PostingsConsumer
Add a new position & payload, and start/end offset. A null payload means no payload; a non-null payload with zero length also means no payload. Caller may reuse the BytesRef for the payload between calls (method must fully consume the payload). startOffset and endOffset will be -1 when offsets are not indexed.

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

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close 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


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