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
  • Field Details

    • name

      protected final String name
      The name this SortFieldProvider is registered under
  • Constructor Details

    • 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 Details

    • 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 given ClassLoader. 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 interface NamedSPILoader.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 DataOutput

      This is used to record index sort information in segment headers

      Throws:
      IOException