Class DocValuesFormat
- java.lang.Object
-
- org.apache.lucene.codecs.DocValuesFormat
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
Lucene40DocValuesFormat
,Lucene42DocValuesFormat
,Lucene45DocValuesFormat
,PerFieldDocValuesFormat
public abstract class DocValuesFormat extends java.lang.Object implements NamedSPILoader.NamedSPI
Encodes/decodes per-document values.Note, when extending this class, the name (
getName()
) may written into the index in certain configurations. In order for the segment to be read, the name must resolve to your implementation viaforName(String)
. This method uses Java'sService Provider Interface
(SPI) to resolve format names.If you implement your own format, make sure that it has a no-arg constructor so SPI can load it.
- See Also:
ServiceLoader
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static java.util.Set<java.lang.String>
availableDocValuesFormats()
returns a list of all available format namesabstract DocValuesConsumer
fieldsConsumer(SegmentWriteState state)
Returns aDocValuesConsumer
to write docvalues to the index.abstract DocValuesProducer
fieldsProducer(SegmentReadState state)
Returns aDocValuesProducer
to read docvalues from the index.static DocValuesFormat
forName(java.lang.String name)
looks up a format by namejava.lang.String
getName()
static void
reloadDocValuesFormats(java.lang.ClassLoader classloader)
Reloads the DocValues format list from the givenClassLoader
.java.lang.String
toString()
-
-
-
Method Detail
-
fieldsConsumer
public abstract DocValuesConsumer fieldsConsumer(SegmentWriteState state) throws java.io.IOException
Returns aDocValuesConsumer
to write docvalues to the index.- Throws:
java.io.IOException
-
fieldsProducer
public abstract DocValuesProducer fieldsProducer(SegmentReadState state) throws java.io.IOException
Returns aDocValuesProducer
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.
- Throws:
java.io.IOException
-
getName
public final java.lang.String getName()
- Specified by:
getName
in interfaceNamedSPILoader.NamedSPI
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
forName
public static DocValuesFormat forName(java.lang.String name)
looks up a format by name
-
availableDocValuesFormats
public static java.util.Set<java.lang.String> availableDocValuesFormats()
returns a list of all available format names
-
reloadDocValuesFormats
public static void reloadDocValuesFormats(java.lang.ClassLoader classloader)
Reloads the DocValues format list from the givenClassLoader
. Changes to the docvalues formats are visible after the method ends, all iterators (availableDocValuesFormats()
,...) stay consistent.NOTE: Only new docvalues formats are added, existing ones are never removed or replaced.
This method is expensive and should only be called for discovery of new docvalues formats on the given classpath/classloader!
-
-