org.apache.lucene.document

## Class AbstractField

- java.lang.Object
- - org.apache.lucene.document.AbstractField

- All Implemented Interfaces:
    java.io.Serializable, Fieldable
  Direct Known Subclasses:
    Field, NumericField

      public abstract class AbstractField
      extends java.lang.Object
      implements Fieldable

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `binaryLength`
    `protected int` | `binaryOffset`
    `protected float` | `boost`
    `protected java.lang.Object` | `fieldsData`
    `protected boolean` | `isBinary`
    `protected boolean` | `isCompressed`
    `protected boolean` | `isIndexed`
    `protected boolean` | `isStored`
    `protected boolean` | `isTokenized`
    `protected boolean` | `lazy`
    `protected java.lang.String` | `name`
    `protected boolean` | `omitNorms`
    `protected boolean` | `omitTermFreqAndPositions`
    `protected boolean` | `storeOffsetWithTermVector`
    `protected boolean` | `storePositionWithTermVector`
    `protected boolean` | `storeTermVector`
    `protected TokenStream` | `tokenStream`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractField()`
    `protected` | `AbstractField(java.lang.String name, Field.Store store, Field.Index index, Field.TermVector termVector)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getBinaryLength()` Returns length of byte[] segment that is used as value, if Field is not binary returned value is undefined
    `int` | `getBinaryOffset()` Returns offset into byte[] segment that is used as value, if Field is not binary returned value is undefined
    `byte[]` | `getBinaryValue()` Return the raw byte[] for the binary field.
    `byte[]` | `getBinaryValue(byte[] result)` Return the raw byte[] for the binary field.
    `float` | `getBoost()` Returns the boost factor for hits for this field.
    `boolean` | `getOmitNorms()` True if norms are omitted for this indexed field
    `boolean` | `getOmitTermFreqAndPositions()`
    `boolean` | `getOmitTf()` Deprecated. Renamed to `getOmitTermFreqAndPositions()`
    `boolean` | `isBinary()` True iff the value of the filed is stored as binary
    `boolean` | `isCompressed()` True if the value of the field is stored and compressed within the index
    `boolean` | `isIndexed()` True iff the value of the field is to be indexed, so that it may be searched on.
    `boolean` | `isLazy()` Indicates whether a Field is Lazy or not.
    `boolean` | `isStored()` True iff the value of the field is to be stored in the index for return with search hits.
    `boolean` | `isStoreOffsetWithTermVector()` True iff terms are stored as term vector together with their offsets (start and end position in source text).
    `boolean` | `isStorePositionWithTermVector()` True iff terms are stored as term vector together with their token positions.
    `boolean` | `isTermVectorStored()` True iff the term or terms used to index this field are stored as a term vector, available from `IndexReader.getTermFreqVector(int,String)`.
    `boolean` | `isTokenized()` True iff the value of the field should be tokenized as text prior to indexing.
    `java.lang.String` | `name()` Returns the name of the field as an interned string.
    `void` | `setBoost(float boost)` Sets the boost factor hits on this field.
    `void` | `setOmitNorms(boolean omitNorms)` Expert: If set, omit normalization factors associated with this indexed field.
    `void` | `setOmitTermFreqAndPositions(boolean omitTermFreqAndPositions)` Expert: If set, omit term freq, positions and payloads from postings for this field.
    `void` | `setOmitTf(boolean omitTermFreqAndPositions)` Deprecated. Renamed to `setOmitTermFreqAndPositions(boolean)`
    `protected void` | `setStoreTermVector(Field.TermVector termVector)`
    `java.lang.String` | `toString()` Prints a Field for human consumption.

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

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

    - ### Methods inherited from interface org.apache.lucene.document.Fieldable

      `binaryValue, readerValue, stringValue, tokenStreamValue`

- - ### Field Detail

    - #### name

          protected java.lang.String name

    - #### storeTermVector

          protected boolean storeTermVector

    - #### storeOffsetWithTermVector

          protected boolean storeOffsetWithTermVector

    - #### storePositionWithTermVector

          protected boolean storePositionWithTermVector

    - #### omitNorms

          protected boolean omitNorms

    - #### isStored

          protected boolean isStored

    - #### isIndexed

          protected boolean isIndexed

    - #### isTokenized

          protected boolean isTokenized

    - #### isBinary

          protected boolean isBinary

    - #### isCompressed

          protected boolean isCompressed

    - #### lazy

          protected boolean lazy

    - #### omitTermFreqAndPositions

          protected boolean omitTermFreqAndPositions

    - #### boost

          protected float boost

    - #### fieldsData

          protected java.lang.Object fieldsData

    - #### tokenStream

          protected TokenStream tokenStream

    - #### binaryLength

          protected int binaryLength

    - #### binaryOffset

          protected int binaryOffset

  - ### Constructor Detail

    - #### AbstractField

          protected AbstractField()

    - #### AbstractField

          protected AbstractField(java.lang.String name,
                                  Field.Store store,
                                  Field.Index index,
                                  Field.TermVector termVector)

  - ### Method Detail

    - #### setBoost

          public void setBoost(float boost)

      Sets the boost factor hits on this field. This value will be multiplied into the score of all hits on this this field of this document.

      The boost is multiplied by `Document.getBoost()` of the document containing this field. If a document has multiple fields with the same name, all such values are multiplied together. This product is then used to compute the norm factor for the field. By default, in the `Similarity.computeNorm(String, FieldInvertState)` method, the boost value is multipled by the `Similarity.lengthNorm(String, int)` and then rounded by `Similarity.encodeNorm(float)` before it is stored in the index. One should attempt to ensure that this product does not overflow the range of that encoding.

      Specified by:
        `setBoost` in interface `Fieldable`
      See Also:
        `Document.setBoost(float)`, `Similarity.computeNorm(String, org.apache.lucene.index.FieldInvertState)`, `Similarity.encodeNorm(float)`

    - #### getBoost

          public float getBoost()

      Returns the boost factor for hits for this field.

      The default value is 1.0.

      Note: this value is not stored directly with the document in the index. Documents returned from `IndexReader.document(int)` and `Hits.doc(int)` may thus not have the same value present as when this field was indexed.

      Specified by:
        `getBoost` in interface `Fieldable`
      See Also:
        `setBoost(float)`

    - #### name

          public java.lang.String name()

      Returns the name of the field as an interned string. For example "date", "title", "body", ...
      Specified by:
        `name` in interface `Fieldable`

    - #### setStoreTermVector

          protected void setStoreTermVector(Field.TermVector termVector)

    - #### isStored

          public final boolean isStored()

      True iff the value of the field is to be stored in the index for return with search hits. It is an error for this to be true if a field is Reader-valued.
      Specified by:
        `isStored` in interface `Fieldable`

    - #### isIndexed

          public final boolean isIndexed()

      True iff the value of the field is to be indexed, so that it may be searched on.
      Specified by:
        `isIndexed` in interface `Fieldable`

    - #### isTokenized

          public final boolean isTokenized()

      True iff the value of the field should be tokenized as text prior to indexing. Un-tokenized fields are indexed as a single word and may not be Reader-valued.
      Specified by:
        `isTokenized` in interface `Fieldable`

    - #### isCompressed

          public final boolean isCompressed()

      True if the value of the field is stored and compressed within the index
      Specified by:
        `isCompressed` in interface `Fieldable`

    - #### isTermVectorStored

          public final boolean isTermVectorStored()

      True iff the term or terms used to index this field are stored as a term vector, available from `IndexReader.getTermFreqVector(int,String)`. These methods do not provide access to the original content of the field, only to terms used to index it. If the original content must be preserved, use the `stored` attribute instead.
      Specified by:
        `isTermVectorStored` in interface `Fieldable`
      See Also:
        `IndexReader.getTermFreqVector(int, String)`

    - #### isStoreOffsetWithTermVector

          public boolean isStoreOffsetWithTermVector()

      True iff terms are stored as term vector together with their offsets (start and end position in source text).
      Specified by:
        `isStoreOffsetWithTermVector` in interface `Fieldable`

    - #### isStorePositionWithTermVector

          public boolean isStorePositionWithTermVector()

      True iff terms are stored as term vector together with their token positions.
      Specified by:
        `isStorePositionWithTermVector` in interface `Fieldable`

    - #### isBinary

          public final boolean isBinary()

      True iff the value of the filed is stored as binary
      Specified by:
        `isBinary` in interface `Fieldable`

    - #### getBinaryValue

          public byte[] getBinaryValue()

      Return the raw byte[] for the binary field. Note that you must also call `getBinaryLength()` and `getBinaryOffset()` to know which range of bytes in this returned array belong to the field.
      Specified by:
        `getBinaryValue` in interface `Fieldable`
      Returns:
        reference to the Field value as byte[].

    - #### getBinaryValue

          public byte[] getBinaryValue(byte[] result)

      Description copied from interface: `Fieldable`
      Return the raw byte[] for the binary field. Note that you must also call `Fieldable.getBinaryLength()` and `Fieldable.getBinaryOffset()` to know which range of bytes in this returned array belong to the field.

      About reuse: if you pass in the result byte[] and it is used, likely the underlying implementation will hold onto this byte[] and return it in future calls to `Fieldable.binaryValue()` or `Fieldable.getBinaryValue()`. So if you subsequently re-use the same byte[] elsewhere it will alter this Fieldable's value.

      Specified by:
        `getBinaryValue` in interface `Fieldable`
      Parameters:
        `result` - User defined buffer that will be used if possible. If this is null or not large enough, a new buffer is allocated
      Returns:
        reference to the Field value as byte[].

    - #### getBinaryLength

          public int getBinaryLength()

      Returns length of byte[] segment that is used as value, if Field is not binary returned value is undefined
      Specified by:
        `getBinaryLength` in interface `Fieldable`
      Returns:
        length of byte[] segment that represents this Field value

    - #### getBinaryOffset

          public int getBinaryOffset()

      Returns offset into byte[] segment that is used as value, if Field is not binary returned value is undefined
      Specified by:
        `getBinaryOffset` in interface `Fieldable`
      Returns:
        index of the first character in byte[] segment that represents this Field value

    - #### getOmitNorms

          public boolean getOmitNorms()

      True if norms are omitted for this indexed field
      Specified by:
        `getOmitNorms` in interface `Fieldable`

    - #### getOmitTf

          public boolean getOmitTf()

      Deprecated. Renamed to `getOmitTermFreqAndPositions()`
      Specified by:
        `getOmitTf` in interface `Fieldable`

    - #### getOmitTermFreqAndPositions

          public boolean getOmitTermFreqAndPositions()

      See Also:
        `setOmitTermFreqAndPositions(boolean)`

    - #### setOmitNorms

          public void setOmitNorms(boolean omitNorms)

      Expert: If set, omit normalization factors associated with this indexed field. This effectively disables indexing boosts and length normalization for this field.
      Specified by:
        `setOmitNorms` in interface `Fieldable`

    - #### setOmitTf

          public void setOmitTf(boolean omitTermFreqAndPositions)

      Deprecated. Renamed to `setOmitTermFreqAndPositions(boolean)`
      Specified by:
        `setOmitTf` in interface `Fieldable`

    - #### setOmitTermFreqAndPositions

          public void setOmitTermFreqAndPositions(boolean omitTermFreqAndPositions)

      Expert: If set, omit term freq, positions and payloads from postings for this field.

      NOTE: While this option reduces storage space required in the index, it also means any query requiring positional information, such as `PhraseQuery` or `SpanQuery` subclasses will silently fail to find results.

    - #### isLazy

          public boolean isLazy()

      Description copied from interface: `Fieldable`
      Indicates whether a Field is Lazy or not. The semantics of Lazy loading are such that if a Field is lazily loaded, retrieving it's values via `Fieldable.stringValue()` or `Fieldable.binaryValue()` is only valid as long as the `IndexReader` that retrieved the `Document` is still open.
      Specified by:
        `isLazy` in interface `Fieldable`
      Returns:
        true if this field can be loaded lazily

    - #### toString

          public final java.lang.String toString()

      Prints a Field for human consumption.
      Overrides:
        `toString` in class `java.lang.Object`

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