Package org.apache.lucene.codecs
Class TermVectorsWriter
- java.lang.Object
 - 
- org.apache.lucene.codecs.TermVectorsWriter
 
 
- 
- All Implemented Interfaces:
 java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
 CompressingTermVectorsWriter,Lucene40TermVectorsWriter
public abstract class TermVectorsWriter extends java.lang.Object implements java.io.CloseableCodec API for writing term vectors:- For every document, 
startDocument(int)is called, informing the Codec how many fields will be written. startField(FieldInfo, int, boolean, boolean, boolean)is called for each field in the document, informing the codec how many terms will be written for that field, and whether or not positions, offsets, or payloads are enabled.- Within each field, 
startTerm(BytesRef, int)is called for each term. - If offsets and/or positions are enabled, then 
       
addPosition(int, int, int, BytesRef)will be called for each term occurrence. - After all documents have been written, 
finish(FieldInfos, int)is called for verification/sanity-checks. - Finally the writer is closed (
close()) 
 
- 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidabort()Aborts writing entirely, implementation should remove any partially-written files, etc.abstract voidaddPosition(int position, int startOffset, int endOffset, BytesRef payload)Adds a term position and offsetsvoidaddProx(int numProx, DataInput positions, DataInput offsets)Called by IndexWriter when writing new segments.abstract voidclose()abstract voidfinish(FieldInfos fis, int numDocs)Called beforeclose(), passing in the number of documents that were written.voidfinishDocument()Called after a doc and all its fields have been added.voidfinishField()Called after a field and all its terms have been added.voidfinishTerm()Called after a term and all its positions have been added.abstract java.util.Comparator<BytesRef>getComparator()Return the BytesRef Comparator used to sort terms before feeding to this API.intmerge(MergeState mergeState)Merges in the term vectors from the readers inmergeState.abstract voidstartDocument(int numVectorFields)Called before writing the term vectors of the document.abstract voidstartField(FieldInfo info, int numTerms, boolean positions, boolean offsets, boolean payloads)Called before writing the terms of the field.abstract voidstartTerm(BytesRef term, int freq)Adds a term and its term frequencyfreq. 
 - 
 
- 
- 
Method Detail
- 
startDocument
public abstract void startDocument(int numVectorFields) throws java.io.IOExceptionCalled before writing the term vectors of the document.startField(FieldInfo, int, boolean, boolean, boolean)will be callednumVectorFieldstimes. Note that if term vectors are enabled, this is called even if the document has no vector fields, in this casenumVectorFieldswill be zero.- Throws:
 java.io.IOException
 
- 
finishDocument
public void finishDocument() throws java.io.IOExceptionCalled after a doc and all its fields have been added.- Throws:
 java.io.IOException
 
- 
startField
public abstract void startField(FieldInfo info, int numTerms, boolean positions, boolean offsets, boolean payloads) throws java.io.IOException
Called before writing the terms of the field.startTerm(BytesRef, int)will be callednumTermstimes.- Throws:
 java.io.IOException
 
- 
finishField
public void finishField() throws java.io.IOExceptionCalled after a field and all its terms have been added.- Throws:
 java.io.IOException
 
- 
startTerm
public abstract void startTerm(BytesRef term, int freq) throws java.io.IOException
Adds a term and its term frequencyfreq. If this field has positions and/or offsets enabled, thenaddPosition(int, int, int, BytesRef)will be calledfreqtimes respectively.- Throws:
 java.io.IOException
 
- 
finishTerm
public void finishTerm() throws java.io.IOExceptionCalled after a term and all its positions have been added.- Throws:
 java.io.IOException
 
- 
addPosition
public abstract void addPosition(int position, int startOffset, int endOffset, BytesRef payload) throws java.io.IOExceptionAdds a term position and offsets- Throws:
 java.io.IOException
 
- 
abort
public abstract void abort()
Aborts writing entirely, implementation should remove any partially-written files, etc. 
- 
finish
public abstract void finish(FieldInfos fis, int numDocs) throws java.io.IOException
Called beforeclose(), passing in the number of documents that were written. Note that this is intentionally redundant (equivalent to the number of calls tostartDocument(int), but a Codec should check that this is the case to detect the JRE bug described in LUCENE-1282.- Throws:
 java.io.IOException
 
- 
addProx
public void addProx(int numProx, DataInput positions, DataInput offsets) throws java.io.IOExceptionCalled by IndexWriter when writing new segments.This is an expert API that allows the codec to consume positions and offsets directly from the indexer.
The default implementation calls
addPosition(int, int, int, BytesRef), but subclasses can override this if they want to efficiently write all the positions, then all the offsets, for example.NOTE: This API is extremely expert and subject to change or removal!!!
- Throws:
 java.io.IOException
 
- 
merge
public int merge(MergeState mergeState) throws java.io.IOException
Merges in the term vectors from the readers inmergeState. The default implementation skips over deleted documents, and usesstartDocument(int),startField(FieldInfo, int, boolean, boolean, boolean),startTerm(BytesRef, int),addPosition(int, int, int, BytesRef), andfinish(FieldInfos, int), returning the number of documents that were written. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).- Throws:
 java.io.IOException
 
- 
getComparator
public abstract java.util.Comparator<BytesRef> getComparator() throws java.io.IOException
Return the BytesRef Comparator used to sort terms before feeding to this API.- Throws:
 java.io.IOException
 
- 
close
public abstract void close() throws java.io.IOException- Specified by:
 closein interfacejava.lang.AutoCloseable- Specified by:
 closein interfacejava.io.Closeable- Throws:
 java.io.IOException
 
 - 
 
 -