org.apache.lucene.codecs.perfield

## Class PerFieldDocValuesFormat

- java.lang.Object
- - org.apache.lucene.codecs.DocValuesFormat
  - - org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat

- All Implemented Interfaces:
    NamedSPILoader.NamedSPI

      public abstract class PerFieldDocValuesFormat
      extends DocValuesFormat

  Enables per field docvalues support.

  Note, when extending this class, the name (`DocValuesFormat.getName()`) is written into the index. In order for the field to be read, the name must resolve to your implementation via `DocValuesFormat.forName(String)`. This method uses Java's `Service Provider Interface` to resolve format names.

  Files written by each docvalues format have an additional suffix containing the format name. For example, in a per-field configuration instead of `_1.dat` filenames would look like `_1_Lucene40_0.dat`.

  See Also:
    `ServiceLoader`
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `PER_FIELD_FORMAT_KEY` `FieldInfo` attribute name used to store the format name for each field.
    `static String` | `PER_FIELD_NAME` Name of this `PostingsFormat`.
    `static String` | `PER_FIELD_SUFFIX_KEY` `FieldInfo` attribute name used to store the segment suffix name for each field.

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `DocValuesConsumer` | `fieldsConsumer(SegmentWriteState state)` Returns a `DocValuesConsumer` to write docvalues to the index.
    `DocValuesProducer` | `fieldsProducer(SegmentReadState state)` Returns a `DocValuesProducer` to read docvalues from the index.
    `abstract DocValuesFormat` | `getDocValuesFormatForField(String field)` Returns the doc values format that should be used for writing new segments of `field`.

    - ### Methods inherited from class org.apache.lucene.codecs.DocValuesFormat

      `availableDocValuesFormats, forName, getName, reloadDocValuesFormats, toString`

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

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

- - ### Field Detail

    - #### PER_FIELD_NAME

          public static final String PER_FIELD_NAME

      Name of this `PostingsFormat`.
      See Also:
        Constant Field Values

    - #### PER_FIELD_FORMAT_KEY

          public static final String PER_FIELD_FORMAT_KEY

      `FieldInfo` attribute name used to store the format name for each field.

    - #### PER_FIELD_SUFFIX_KEY

          public static final String PER_FIELD_SUFFIX_KEY

      `FieldInfo` attribute name used to store the segment suffix name for each field.

  - ### Constructor Detail

    - #### PerFieldDocValuesFormat

          public PerFieldDocValuesFormat()

      Sole constructor.

  - ### Method Detail

    - #### fieldsConsumer

          public final DocValuesConsumer fieldsConsumer(SegmentWriteState state)
                                                 throws IOException

      Description copied from class: `DocValuesFormat`
      Returns a `DocValuesConsumer` to write docvalues to the index.
      Specified by:
        `fieldsConsumer` in class `DocValuesFormat`
      Throws:
        `IOException`

    - #### fieldsProducer

          public final DocValuesProducer fieldsProducer(SegmentReadState state)
                                                 throws IOException

      Description copied from class: `DocValuesFormat`
      Returns a `DocValuesProducer` to read docvalues from the index.

      NOTE: by the time this call returns, it must hold open any files it will need to use; else, those files may be deleted. Additionally, required files may be deleted during the execution of this call before there is a chance to open them. Under these circumstances an IOException should be thrown by the implementation. IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.

      Specified by:
        `fieldsProducer` in class `DocValuesFormat`
      Throws:
        `IOException`

    - #### getDocValuesFormatForField

          public abstract DocValuesFormat getDocValuesFormatForField(String field)

      Returns the doc values format that should be used for writing new segments of `field`.

      The field to format mapping is written to the index, so this method is only invoked when writing, not when reading.

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