Package org.apache.lucene.index
Class SortFieldProvider
- java.lang.Object
-
- org.apache.lucene.index.SortFieldProvider
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
SortedNumericSortField.Provider,SortedSetSortField.Provider,SortField.Provider
public abstract class SortFieldProvider extends Object implements NamedSPILoader.NamedSPI
Reads/Writes a named SortField from a segment info file, used to record index sorts
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSortFieldProvider(String name)Creates a new SortFieldProvider.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Set<String>availableSortFieldProviders()Lists all available SortFieldProvidersstatic SortFieldProviderforName(String name)Looks up a SortFieldProvider by nameStringgetName()abstract SortFieldreadSortField(DataInput in)Reads a SortField from serialized bytesstatic voidreloadSortFieldProviders(ClassLoader classLoader)Reloads the SortFieldProvider list from the givenClassLoader.static voidwrite(SortField sf, DataOutput output)Writes a SortField to a DataOutputabstract voidwriteSortField(SortField sf, DataOutput out)Writes a SortField to a DataOutput
-
-
-
Field Detail
-
name
protected final String name
The name this SortFieldProvider is registered under
-
-
Constructor Detail
-
SortFieldProvider
protected SortFieldProvider(String name)
Creates a new SortFieldProvider.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 Detail
-
forName
public static SortFieldProvider forName(String name)
Looks up a SortFieldProvider by name
-
availableSortFieldProviders
public static Set<String> availableSortFieldProviders()
Lists all available SortFieldProviders
-
reloadSortFieldProviders
public static void reloadSortFieldProviders(ClassLoader classLoader)
Reloads the SortFieldProvider list from the givenClassLoader. Changes to the list are visible after the method ends, all iterators (availableSortFieldProviders()()},...) stay consistent.NOTE: Only new SortFieldProviders are added, existing ones are never removed or replaced.
This method is expensive and should only be called for discovery of new SortFieldProviders on the given classpath/classloader!
-
write
public static void write(SortField sf, DataOutput output) throws IOException
Writes a SortField to a DataOutput- Throws:
IOException
-
getName
public String getName()
- Specified by:
getNamein interfaceNamedSPILoader.NamedSPI
-
readSortField
public abstract SortField readSortField(DataInput in) throws IOException
Reads a SortField from serialized bytes- Throws:
IOException
-
writeSortField
public abstract void writeSortField(SortField sf, DataOutput out) throws IOException
Writes a SortField to a DataOutputThis is used to record index sort information in segment headers
- Throws:
IOException
-
-