Package org.apache.lucene.codecs

Codecs API: API for customization of the encoding and structure of the index.

The Codec API allows you to customise the way the following pieces of index information are stored:

For some concrete implementations beyond Lucene's official index format, see the Codecs module.

Codecs are identified by name through the Java Service Provider Interface. To create your own codec, extend Codec and pass the new codec's name to the super() constructor:

public class MyCodec extends Codec {

    public MyCodec() {
        super("MyCodecName");
    }

    ...
}
You will need to register the Codec class so that the ServiceLoader can find it, by including a META-INF/services/org.apache.lucene.codecs.Codec file on your classpath that contains the package-qualified name of your codec.

If you just want to customise the PostingsFormat, or use different postings formats for different fields, then you can register your custom postings format in the same way (in META-INF/services/org.apache.lucene.codecs.PostingsFormat), and then extend the default Lucene46Codec and override Lucene46Codec.getPostingsFormatForField(String) to return your custom postings format.

Similarly, if you just want to customise the DocValuesFormat per-field, have a look at Lucene46Codec.getDocValuesFormatForField(String).