org.apache.lucene.codecs.perfield
Class PerFieldDocValuesFormat

java.lang.Object
  extended by org.apache.lucene.codecs.DocValuesFormat
      extended by 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.