org.apache.lucene.document

## Class LegacyFloatField

- java.lang.Object
- - org.apache.lucene.document.Field
  - - org.apache.lucene.document.LegacyFloatField

- All Implemented Interfaces:
    IndexableField

  Deprecated.
  Please use `FloatPoint` instead

      @Deprecated
      public final class LegacyFloatField
      extends Field

  Field that indexes `float` values for efficient range filtering and sorting. Here's an example usage:

       document.add(new LegacyFloatField(name, 6.0F, Field.Store.NO));

  For optimal performance, re-use the `LegacyFloatField` and `Document` instance for more than one document:

        LegacyFloatField field = new LegacyFloatField(name, 0.0F, Field.Store.NO);
        Document document = new Document();
        document.add(field);

        for(all documents) {
          ...
          field.setFloatValue(value)
          writer.addDocument(document);
          ...
        }

  See also `LegacyIntField`, `LegacyLongField`, `LegacyDoubleField`.

  To perform range querying or filtering against a `LegacyFloatField`, use `LegacyNumericRangeQuery`. To sort according to a `LegacyFloatField`, use the normal numeric sort types, eg `SortField.Type.FLOAT`. `LegacyFloatField` values can also be loaded directly from `LeafReader.getNumericDocValues(java.lang.String)`.

  You may add the same field name as an `LegacyFloatField` to the same document more than once. Range querying and filtering will be the logical OR of all values; so a range query will hit all documents that have at least one value in the range. However sort behavior is not defined. If you need to sort, you should separately index a single-valued `LegacyFloatField`.

  A `LegacyFloatField` will consume somewhat more disk space in the index than an ordinary single-valued field. However, for a typical index that includes substantial textual content per document, this increase will likely be in the noise.

  Within Lucene, each numeric value is indexed as a trie structure, where each term is logically assigned to larger and larger pre-defined brackets (which are simply lower-precision representations of the value). The step size between each successive bracket is called the `precisionStep`, measured in bits. Smaller `precisionStep` values result in larger number of brackets, which consumes more disk space in the index but may result in faster range search performance. The default value, 8, was selected for a reasonable tradeoff of disk space consumption versus performance. You can create a custom `FieldType` and invoke the `FieldType.setNumericPrecisionStep(int)` method if you'd like to change the value. Note that you must also specify a congruent value when creating `LegacyNumericRangeQuery`. For low cardinality fields larger precision steps are good. If the cardinality is < 100, it is fair to use `Integer.MAX_VALUE`, which produces one term per value.

  For more information on the internals of numeric trie indexing, including the `precisionStep` configuration, see `LegacyNumericRangeQuery`. The format of indexed values is described in `LegacyNumericUtils`.

  If you only need to sort by numeric value, and never run range querying/filtering, you can index using a `precisionStep` of `Integer.MAX_VALUE`. This will minimize disk space consumed.

  More advanced users can instead use `LegacyNumericTokenStream` directly, when indexing numbers. This class is a wrapper around this token stream type for easier, more intuitive usage.

  Since:
    2.9

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.lucene.document.Field

      `Field.Store`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FieldType` | `TYPE_NOT_STORED` Deprecated. Type for a LegacyFloatField that is not stored: normalization factors, frequencies, and positions are omitted.
    `static FieldType` | `TYPE_STORED` Deprecated. Type for a stored LegacyFloatField: normalization factors, frequencies, and positions are omitted.

    - ### Fields inherited from class org.apache.lucene.document.Field

      `boost, fieldsData, name, tokenStream, type`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LegacyFloatField(String name, float value, Field.Store stored)` Deprecated. Creates a stored or un-stored LegacyFloatField with the provided value and default `precisionStep` `LegacyNumericUtils.PRECISION_STEP_DEFAULT_32` (8).
    `LegacyFloatField(String name, float value, FieldType type)` Deprecated. Expert: allows you to customize the `FieldType`.

  - ### Method Summary

    - ### Methods inherited from class org.apache.lucene.document.Field

      `binaryValue, boost, fieldType, name, numericValue, readerValue, setBoost, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, stringValue, tokenStream, tokenStreamValue, toString`

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

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

- - ### Field Detail

    - #### TYPE_NOT_STORED

          public static final FieldType TYPE_NOT_STORED

      Deprecated.
      Type for a LegacyFloatField that is not stored: normalization factors, frequencies, and positions are omitted.

    - #### TYPE_STORED

          public static final FieldType TYPE_STORED

      Deprecated.
      Type for a stored LegacyFloatField: normalization factors, frequencies, and positions are omitted.

  - ### Constructor Detail

    - #### LegacyFloatField

          public LegacyFloatField(String name,
                                  float value,
                                  Field.Store stored)

      Deprecated.
      Creates a stored or un-stored LegacyFloatField with the provided value and default `precisionStep` `LegacyNumericUtils.PRECISION_STEP_DEFAULT_32` (8).
      Parameters:
        `name` - field name
        `value` - 32-bit double value
        `stored` - Store.YES if the content should also be stored
      Throws:
        `IllegalArgumentException` - if the field name is null.

    - #### LegacyFloatField

          public LegacyFloatField(String name,
                                  float value,
                                  FieldType type)

      Deprecated.
      Expert: allows you to customize the `FieldType`.
      Parameters:
        `name` - field name
        `value` - 32-bit float value
        `type` - customized field type: must have `FieldType.numericType()` of `FieldType.LegacyNumericType.FLOAT`.
      Throws:
        `IllegalArgumentException` - if the field name or type is null, or if the field type does not have a FLOAT numericType()

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