Class 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 a TermVectorsRequest. It works exactly like the Fields 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 the TermVectorsRequest.

    The data is stored in two byte arrays (headerRef and termVectors, both BytesRef) that have the following format:

    headerRef: Stores offsets per field in the termVectors array and some header information as BytesRef. 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?)
    If the field statistics were requested (hasFieldStatistics is true, see headerRef), 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, see headerRef):

    • vint: document frequency, how often does this term appear in documents?
    • vlong: total term frequency. Sum of terms in this field.
    After that
    • 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  
      • Fields inherited from class org.apache.lucene.index.Fields

        EMPTY_ARRAY
    • Method Summary

      Modifier and Type Method Description
      java.util.Iterator<java.lang.String> iterator()  
      int size()  
      org.apache.lucene.index.Terms terms​(java.lang.String field)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • hasScores

        public final boolean hasScores
    • Constructor Detail

      • TermVectorsFields

        public TermVectorsFields​(BytesReference headerRef,
                                 BytesReference termVectors)
                          throws java.io.IOException
        Parameters:
        headerRef - Stores offsets per field in the termVectors and some header information as BytesRef.
        termVectors - Stores the actual term vectors as a BytesRef.
        Throws:
        java.io.IOException
    • Method Detail

      • iterator

        public java.util.Iterator<java.lang.String> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.String>
        Specified by:
        iterator in class org.apache.lucene.index.Fields
      • terms

        public org.apache.lucene.index.Terms terms​(java.lang.String field)
                                            throws java.io.IOException
        Specified by:
        terms in class org.apache.lucene.index.Fields
        Throws:
        java.io.IOException
      • size

        public int size()
        Specified by:
        size in class org.apache.lucene.index.Fields