org.apache.lucene.index
Interface TermPositions

All Superinterfaces:
Closeable, TermDocs
All Known Implementing Classes:
FilterIndexReader.FilterTermPositions, InstantiatedTermPositions, MultipleTermPositions

public interface TermPositions
extends TermDocs

TermPositions provides an interface for enumerating the <document, frequency, <position>* > tuples for a term.

The document and frequency are the same as for a TermDocs. The positions portion lists the ordinal positions of each occurrence of a term in a document.

See Also:
IndexReader.termPositions()

Method Summary
 byte[] getPayload(byte[] data, int offset)
          Returns the payload data at the current term position.
 int getPayloadLength()
          Returns the length of the payload at the current term position.
 boolean isPayloadAvailable()
          Checks if a payload can be loaded at this position.
 int nextPosition()
          Returns next position in the current document.
 
Methods inherited from interface org.apache.lucene.index.TermDocs
close, doc, freq, next, read, seek, seek, skipTo
 

Method Detail

nextPosition

int nextPosition()
                 throws IOException
Returns next position in the current document. It is an error to call this more than TermDocs.freq() times without calling TermDocs.next()

This is invalid until TermDocs.next() is called for the first time.

Throws:
IOException

getPayloadLength

int getPayloadLength()
Returns the length of the payload at the current term position. This is invalid until nextPosition() is called for the first time.

Returns:
length of the current payload in number of bytes

getPayload

byte[] getPayload(byte[] data,
                  int offset)
                  throws IOException
Returns the payload data at the current term position. This is invalid until nextPosition() is called for the first time. This method must not be called more than once after each call of nextPosition(). However, payloads are loaded lazily, so if the payload data for the current position is not needed, this method may not be called at all for performance reasons.

Parameters:
data - the array into which the data of this payload is to be stored, if it is big enough; otherwise, a new byte[] array is allocated for this purpose.
offset - the offset in the array into which the data of this payload is to be stored.
Returns:
a byte[] array containing the data of this payload
Throws:
IOException

isPayloadAvailable

boolean isPayloadAvailable()
Checks if a payload can be loaded at this position.

Payloads can only be loaded once per call to nextPosition().

Returns:
true if there is a payload available at this position that can be loaded