Package org.apache.lucene.codecs
Class PostingsFormat
java.lang.Object
org.apache.lucene.codecs.PostingsFormat
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
Lucene40PostingsFormat
,Lucene41PostingsFormat
,PerFieldPostingsFormat
Encodes/decodes terms, postings, and proximity data.
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 via forName(String)
.
This method uses Java's
Service 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:
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionreturns a list of all available format namesabstract FieldsConsumer
fieldsConsumer
(SegmentWriteState state) Writes a new segmentabstract FieldsProducer
fieldsProducer
(SegmentReadState state) Reads a segment.static PostingsFormat
looks up a format by namefinal String
getName()
Returns this posting format's namestatic void
reloadPostingsFormats
(ClassLoader classloader) Reloads the postings format list from the givenClassLoader
.toString()
-
Field Details
-
EMPTY
Zero-lengthPostingsFormat
array.
-
-
Method Details
-
getName
Returns this posting format's name- Specified by:
getName
in interfaceNamedSPILoader.NamedSPI
-
fieldsConsumer
Writes a new segment- Throws:
IOException
-
fieldsProducer
Reads a segment. 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:
IOException
-
toString
-
forName
looks up a format by name -
availablePostingsFormats
returns a list of all available format names -
reloadPostingsFormats
Reloads the postings format list from the givenClassLoader
. Changes to the postings formats are visible after the method ends, all iterators (availablePostingsFormats()
,...) stay consistent.NOTE: Only new postings formats are added, existing ones are never removed or replaced.
This method is expensive and should only be called for discovery of new postings formats on the given classpath/classloader!
-