## 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
`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
`PerFieldDocValuesFormat()` Sole constructor.

Method Summary
`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-2013 Apache Software Foundation. All Rights Reserved.