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 protected
SortFieldProvider(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 SortFieldProvider
forName(String name)
Looks up a SortFieldProvider by nameString
getName()
abstract SortField
readSortField(DataInput in)
Reads a SortField from serialized bytesstatic void
reloadSortFieldProviders(ClassLoader classLoader)
Reloads the SortFieldProvider list from the givenClassLoader
.static void
write(SortField sf, DataOutput output)
Writes a SortField to a DataOutputabstract void
writeSortField(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:
getName
in 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
-
-