Package org.apache.lucene.codecs

# Class Codec

java.lang.Object
org.apache.lucene.codecs.Codec

All Implemented Interfaces:
  `NamedSPILoader.NamedSPI`

Direct Known Subclasses:
  `FilterCodec`, `Lucene100Codec`

public abstract class Codec extends Object implements NamedSPILoader.NamedSPI
Encodes/decodes an inverted index segment.

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

If you implement your own codec, make sure that it has a no-arg constructor so SPI can load it.

See Also:
  - `ServiceLoader`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`Codec(String name)`
Creates a new codec.

## Method Summary

Modifier and Type
Method
Description
`static Set<String>`
`availableCodecs()`
returns a list of all available codec names
`abstract CompoundFormat`
`compoundFormat()`
Encodes/decodes compound files
`abstract DocValuesFormat`
`docValuesFormat()`
Encodes/decodes docvalues
`abstract FieldInfosFormat`
`fieldInfosFormat()`
Encodes/decodes field infos file
`static Codec`
`forName(String name)`
looks up a codec by name
`static Codec`
`getDefault()`
expert: returns the default codec used for newly created `IndexWriterConfig`s.
`final String`
`getName()`
Returns this codec's name
`abstract KnnVectorsFormat`
`knnVectorsFormat()`
Encodes/decodes numeric vector fields
`abstract LiveDocsFormat`
`liveDocsFormat()`
Encodes/decodes live docs
`abstract NormsFormat`
`normsFormat()`
Encodes/decodes document normalization values
`abstract PointsFormat`
`pointsFormat()`
Encodes/decodes points index
`abstract PostingsFormat`
`postingsFormat()`
Encodes/decodes postings
`static void`
`reloadCodecs(ClassLoader classloader)`
Reloads the codec list from the given `ClassLoader`.
`abstract SegmentInfoFormat`
`segmentInfoFormat()`
Encodes/decodes segment info file
`static void`
`setDefault(Codec codec)`
expert: sets the default codec used for newly created `IndexWriterConfig`s.
`abstract StoredFieldsFormat`
`storedFieldsFormat()`
Encodes/decodes stored fields
`abstract TermVectorsFormat`
`termVectorsFormat()`
Encodes/decodes term vectors
`String`
`toString()`
returns the codec's name.

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

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

## Constructor Details

### Codec

protected Codec(String name)
Creates a new codec.

The provided name will be written into the index segment: in order to for the segment to be read this class should be registered with Java's SPI mechanism (registered in META-INF/ of your jar file, etc).

Parameters:
  `name` - must be all ascii alphanumeric, and less than 128 characters in length.

## Method Details

### getName

public final String getName()
Returns this codec's name

Specified by:
  `getName` in interface `NamedSPILoader.NamedSPI`

### postingsFormat

public abstract PostingsFormat postingsFormat()
Encodes/decodes postings

### docValuesFormat

public abstract DocValuesFormat docValuesFormat()
Encodes/decodes docvalues

### storedFieldsFormat

public abstract StoredFieldsFormat storedFieldsFormat()
Encodes/decodes stored fields

### termVectorsFormat

public abstract TermVectorsFormat termVectorsFormat()
Encodes/decodes term vectors

### fieldInfosFormat

public abstract FieldInfosFormat fieldInfosFormat()
Encodes/decodes field infos file

### segmentInfoFormat

public abstract SegmentInfoFormat segmentInfoFormat()
Encodes/decodes segment info file

### normsFormat

public abstract NormsFormat normsFormat()
Encodes/decodes document normalization values

### liveDocsFormat

public abstract LiveDocsFormat liveDocsFormat()
Encodes/decodes live docs

### compoundFormat

public abstract CompoundFormat compoundFormat()
Encodes/decodes compound files

### pointsFormat

public abstract PointsFormat pointsFormat()
Encodes/decodes points index

### knnVectorsFormat

public abstract KnnVectorsFormat knnVectorsFormat()
Encodes/decodes numeric vector fields

### forName

public static Codec forName(String name)
looks up a codec by name

### availableCodecs

public static Set<String> availableCodecs()
returns a list of all available codec names

### reloadCodecs

public static void reloadCodecs(ClassLoader classloader)
Reloads the codec list from the given `ClassLoader`. Changes to the codecs are visible after the method ends, all iterators (`availableCodecs()`,...) stay consistent.

NOTE: Only new codecs are added, existing ones are never removed or replaced.

This method is expensive and should only be called for discovery of new codecs on the given classpath/classloader!

### getDefault

public static Codec getDefault()
expert: returns the default codec used for newly created `IndexWriterConfig`s.

### setDefault

public static void setDefault(Codec codec)
expert: sets the default codec used for newly created `IndexWriterConfig`s.

### toString

public String toString()
returns the codec's name. Subclasses can override to provide more detail (such as parameters).

Overrides:
  `toString` in class `Object`