org.apache.lucene.codecs.lucene40

## Class Lucene40TermVectorsFormat

- java.lang.Object
- - org.apache.lucene.codecs.TermVectorsFormat
  - - org.apache.lucene.codecs.lucene40.Lucene40TermVectorsFormat

-     public class Lucene40TermVectorsFormat
      extends TermVectorsFormat

  Lucene 4.0 Term Vectors format.

  Term Vector support is an optional on a field by field basis. It consists of 3 files.

  1. The Document Index or .tvx file.

     For each document, this stores the offset into the document data (.tvd) and field data (.tvf) files.

     DocumentIndex (.tvx) --> Header,<DocumentPosition,FieldPosition> NumDocs

     - Header --> `CodecHeader`
     - DocumentPosition --> `UInt64` (offset in the .tvd file)
     - FieldPosition --> `UInt64` (offset in the .tvf file)

  2. The Document or .tvd file.

     This contains, for each document, the number of fields, a list of the fields with term vector info and finally a list of pointers to the field information in the .tvf (Term Vector Fields) file.

     The .tvd file is used to map out the fields that have term vectors stored and where the field information is in the .tvf file.

     Document (.tvd) --> Header,<NumFields, FieldNums, FieldPositions> NumDocs

     - Header --> `CodecHeader`
     - NumFields --> `VInt`
     - FieldNums --> <FieldNumDelta> NumFields
     - FieldNumDelta --> `VInt`
     - FieldPositions --> <FieldPositionDelta> NumFields-1
     - FieldPositionDelta --> `VLong`

  3. The Field or .tvf file.

     This file contains, for each field that has a term vector stored, a list of the terms, their frequencies and, optionally, position, offset, and payload information.

     Field (.tvf) --> Header,<NumTerms, Flags, TermFreqs> NumFields

     - Header --> `CodecHeader`
     - NumTerms --> `VInt`
     - Flags --> `Byte`
     - TermFreqs --> <TermText, TermFreq, Positions?, PayloadData?, Offsets?> NumTerms
     - TermText --> <PrefixLength, Suffix>
     - PrefixLength --> `VInt`
     - Suffix --> `String`
     - TermFreq --> `VInt`
     - Positions --> <PositionDelta PayloadLength?>TermFreq
     - PositionDelta --> `VInt`
     - PayloadLength --> `VInt`
     - PayloadData --> `Byte`NumPayloadBytes
     - Offsets --> <`VInt`, `VInt`>TermFreq

     Notes:

     - Flags byte stores whether this term vector has position, offset, payload. information stored.
     - Term byte prefixes are shared. The PrefixLength is the number of initial bytes from the previous term which must be pre-pended to a term's suffix in order to form the term's bytes. Thus, if the previous term's text was "bone" and the term is "boy", the PrefixLength is two and the suffix is "y".
     - PositionDelta is, if payloads are disabled for the term's field, the difference between the position of the current occurrence in the document and the previous occurrence (or zero, if this is the first occurrence in this document). If payloads are enabled for the term's field, then PositionDelta/2 is the difference between the current and the previous position. If payloads are enabled and PositionDelta is odd, then PayloadLength is stored, indicating the length of the payload at the current term position.
     - PayloadData is metadata associated with a term position. If PayloadLength is stored at the current position, then it indicates the length of this payload. If PayloadLength is not stored, then this payload has the same length as the payload at the previous position. PayloadData encodes the concatenated bytes for all of a terms occurrences.
     - Offsets are stored as delta encoded VInts. The first VInt is the startOffset, the second is the endOffset.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Lucene40TermVectorsFormat()` Sole constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `TermVectorsReader` | `vectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context)` Returns a `TermVectorsReader` to read term vectors.
    `TermVectorsWriter` | `vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context)` Returns a `TermVectorsWriter` to write term vectors.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Lucene40TermVectorsFormat

          public Lucene40TermVectorsFormat()

      Sole constructor.

  - ### Method Detail

    - #### vectorsReader

          public TermVectorsReader vectorsReader(Directory directory,
                                        SegmentInfo segmentInfo,
                                        FieldInfos fieldInfos,
                                        IOContext context)
                                          throws IOException

      Description copied from class: `TermVectorsFormat`
      Returns a `TermVectorsReader` to read term vectors.
      Specified by:
        `vectorsReader` in class `TermVectorsFormat`
      Throws:
        `IOException`

    - #### vectorsWriter

          public TermVectorsWriter vectorsWriter(Directory directory,
                                        SegmentInfo segmentInfo,
                                        IOContext context)
                                          throws IOException

      Description copied from class: `TermVectorsFormat`
      Returns a `TermVectorsWriter` to write term vectors.
      Specified by:
        `vectorsWriter` in class `TermVectorsFormat`
      Throws:
        `IOException`

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