## org.apache.lucene.document
Interface Fieldable

All Superinterfaces:
  Serializable

All Known Implementing Classes:
  AbstractField, Field, NumericField

    public interface Fieldable

extends Serializable

Synonymous with `Field`.

<bold>WARNING</bold>: This interface may change within minor versions, despite Lucene's backward compatibility requirements. This means new methods may be added from version to version. This change only affects the Fieldable API; other backwards compatibility promises remain intact. For example, Lucene can still read and write indices created within the same major version.

Method Summary
`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.
`FieldInfo.IndexOptions` `getIndexOptions()`
`boolean` `getOmitNorms()` True if norms are omitted for this indexed field
`boolean` `isBinary()` True if the value of the field is stored as binary
`boolean` `isIndexed()` True if 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 if the value of the field is to be stored in the index for return with search hits.
`boolean` `isStoreOffsetWithTermVector()` True if terms are stored as term vector together with their offsets (start and end positon in source text).
`boolean` `isStorePositionWithTermVector()` True if terms are stored as term vector together with their token positions.
`boolean` `isTermVectorStored()` True if the term or terms used to index this field are stored as a term vector, available from `IndexReader.getTermFreqVector(int,String)`.
`boolean` `isTokenized()` True if the value of the field should be tokenized as text prior to indexing.
`String` `name()` Returns the name of the field as an interned string.
`Reader` `readerValue()` The value of the field as a Reader, which can be used at index time to generate indexed tokens.
`void` `setBoost(float boost)` Sets the boost factor hits on this field.
`void` `setIndexOptions(FieldInfo.IndexOptions indexOptions)` Expert: If set, omit term freq, and optionally positions and payloads from postings for this field.
`void` `setOmitNorms(boolean omitNorms)` Expert: If set, omit normalization factors associated with this indexed field.
`String` `stringValue()` The value of the field as a String, or null.
`TokenStream` `tokenStreamValue()` The TokenStream for this field to be used when indexing, or null.

Method Detail

### setBoost

    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 multiplied by the `Similarity.lengthNorm(String, int)` and then rounded by `Similarity.encodeNormValue(float)` before it is stored in the index. One should attempt to ensure that this product does not overflow the range of that encoding.

  See Also:
    `Document.setBoost(float)`, `Similarity.computeNorm(String, FieldInvertState)`, `Similarity.encodeNormValue(float)`

### getBoost

    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 `Searcher.doc(int)` may thus not have the same value present as when this field was indexed.

  See Also:
    `setBoost(float)`

### name

    String name()

  Returns the name of the field as an interned string. For example "date", "title", "body", ...

### stringValue

    String stringValue()

  The value of the field as a String, or null.

  For indexing, if isStored()==true, the stringValue() will be used as the stored field value unless isBinary()==true, in which case getBinaryValue() will be used. If isIndexed()==true and isTokenized()==false, this String value will be indexed as a single token. If isIndexed()==true and isTokenized()==true, then tokenStreamValue() will be used to generate indexed tokens if not null, else readerValue() will be used to generate indexed tokens if not null, else stringValue() will be used to generate tokens.

### readerValue

    Reader readerValue()

  The value of the field as a Reader, which can be used at index time to generate indexed tokens.

  See Also:
    `stringValue()`

### tokenStreamValue

    TokenStream tokenStreamValue()

  The TokenStream for this field to be used when indexing, or null.

  See Also:
    `stringValue()`

### isStored

    boolean isStored()

  True if the value of the field is to be stored in the index for return with search hits.

### isIndexed

    boolean isIndexed()

  True if the value of the field is to be indexed, so that it may be searched on.

### isTokenized

    boolean isTokenized()

  True if 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.

### isTermVectorStored

    boolean isTermVectorStored()

  True if 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.

  See Also:
    `IndexReader.getTermFreqVector(int, String)`

### isStoreOffsetWithTermVector

    boolean isStoreOffsetWithTermVector()

  True if terms are stored as term vector together with their offsets (start and end positon in source text).

### isStorePositionWithTermVector

    boolean isStorePositionWithTermVector()

  True if terms are stored as term vector together with their token positions.

### isBinary

    boolean isBinary()

  True if the value of the field is stored as binary

### getOmitNorms

    boolean getOmitNorms()

  True if norms are omitted for this indexed field

### setOmitNorms

    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.

### isLazy

    boolean isLazy()

  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 `stringValue()` or `getBinaryValue()` is only valid as long as the `IndexReader` that retrieved the `Document` is still open.

  Returns:
    true if this field can be loaded lazily

### getBinaryOffset

    int getBinaryOffset()

  Returns offset into byte[] segment that is used as value, if Field is not binary returned value is undefined

  Returns:
    index of the first character in byte[] segment that represents this Field value

### getBinaryLength

    int getBinaryLength()

  Returns length of byte[] segment that is used as value, if Field is not binary returned value is undefined

  Returns:
    length of byte[] segment that represents this Field value

### getBinaryValue

    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.

  Returns:
    reference to the Field value as byte[].

### getBinaryValue

    byte[] getBinaryValue(byte[] result)

  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.

  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 `getBinaryValue()`. So if you subsequently re-use the same byte[] elsewhere it will alter this Fieldable's value.

  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[].

### getIndexOptions

    FieldInfo.IndexOptions getIndexOptions()

  See Also:
    `setIndexOptions(org.apache.lucene.index.FieldInfo.IndexOptions)`

### setIndexOptions

    void setIndexOptions(FieldInfo.IndexOptions indexOptions)

  Expert: If set, omit term freq, and optionally 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.