Class TermVectorsFields
- java.lang.Object
-
- org.apache.lucene.index.Fields
-
- org.elasticsearch.action.termvectors.TermVectorsFields
-
- All Implemented Interfaces:
java.lang.Iterable<java.lang.String>
public final class TermVectorsFields extends org.apache.lucene.index.Fields
This class represents the result of aTermVectorsRequest
. It works exactly like theFields
class except for one thing: It can return offsets and payloads even if positions are not present. You must call nextPosition() anyway to move the counter although this method only returns-1,
, if no positions were returned by theTermVectorsRequest
.The data is stored in two byte arrays (
headerRef
andtermVectors
, bothBytesRef
) that have the following format:headerRef
: Stores offsets per field in thetermVectors
array and some header information asBytesRef
. Format is- String : "TV"
- vint: version (=-1)
- boolean: hasTermStatistics (are the term statistics stored?)
- boolean: hasFieldStatitsics (are the field statistics stored?)
- vint: number of fields
-
- String: field name 1
- vint: offset in
termVectors
for field 1 - ...
- String: field name last field
- vint: offset in
termVectors
for last field
termVectors: Stores the actual term vectors as a
BytesRef
.Term vectors for each fields are stored in blocks, one for each field. The offsets in
headerRef
are used to find where the block for a field starts. Each block begins with a- vint: number of terms
- boolean: positions (has it positions stored?)
- boolean: offsets (has it offsets stored?)
- boolean: payloads (has it payloads stored?)
hasFieldStatistics
is true, seeheaderRef
), the following numbers are stored:- vlong: sum of total term frequencies of the field (sumTotalTermFreq)
- vlong: sum of document frequencies for each term (sumDocFreq)
- vint: number of documents in the shard that has an entry for this field (docCount)
After that, for each term it stores
- vint: term lengths
- BytesRef: term name
If term statistics are requested (
hasTermStatistics
is true, seeheaderRef
):- vint: document frequency, how often does this term appear in documents?
- vlong: total term frequency. Sum of terms in this field.
- vint: frequency (always returned)
-
- vint: position_1 (if positions)
- vint: startOffset_1 (if offset)
- vint: endOffset_1 (if offset)
- BytesRef: payload_1 (if payloads)
- ...
- vint: endOffset_freqency (if offset)
- BytesRef: payload_freqency (if payloads)
-
-
Field Summary
Fields Modifier and Type Field Description boolean
hasScores
-
Constructor Summary
Constructors Constructor Description TermVectorsFields(BytesReference headerRef, BytesReference termVectors)
-
-
-
Constructor Detail
-
TermVectorsFields
public TermVectorsFields(BytesReference headerRef, BytesReference termVectors) throws java.io.IOException
- Parameters:
headerRef
- Stores offsets per field in thetermVectors
and some header information asBytesRef
.termVectors
- Stores the actual term vectors as aBytesRef
.- Throws:
java.io.IOException
-
-
Method Detail
-
iterator
public java.util.Iterator<java.lang.String> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<java.lang.String>
- Specified by:
iterator
in classorg.apache.lucene.index.Fields
-
terms
public org.apache.lucene.index.Terms terms(java.lang.String field) throws java.io.IOException
- Specified by:
terms
in classorg.apache.lucene.index.Fields
- Throws:
java.io.IOException
-
size
public int size()
- Specified by:
size
in classorg.apache.lucene.index.Fields
-
-