Class SortField

  • All Implemented Interfaces:
    Serializable

    public class SortField
    extends Object
    implements Serializable
    Stores information about how to sort documents by terms in an individual field. Fields must be indexed in order to sort by them.

    Created: Feb 11, 2004 1:25:29 PM

    Since:
    lucene 1.4
    See Also:
    Sort, Serialized Form
    • Field Detail

      • SCORE

        public static final int SCORE
        Sort by document score (relevance). Sort values are Float and higher values are at the front.
        See Also:
        Constant Field Values
      • DOC

        public static final int DOC
        Sort by document number (index order). Sort values are Integer and lower values are at the front.
        See Also:
        Constant Field Values
      • STRING

        public static final int STRING
        Sort using term values as Strings. Sort values are String and lower values are at the front.
        See Also:
        Constant Field Values
      • INT

        public static final int INT
        Sort using term values as encoded Integers. Sort values are Integer and lower values are at the front.
        See Also:
        Constant Field Values
      • FLOAT

        public static final int FLOAT
        Sort using term values as encoded Floats. Sort values are Float and lower values are at the front.
        See Also:
        Constant Field Values
      • LONG

        public static final int LONG
        Sort using term values as encoded Longs. Sort values are Long and lower values are at the front.
        See Also:
        Constant Field Values
      • DOUBLE

        public static final int DOUBLE
        Sort using term values as encoded Doubles. Sort values are Double and lower values are at the front.
        See Also:
        Constant Field Values
      • SHORT

        public static final int SHORT
        Sort using term values as encoded Shorts. Sort values are Short and lower values are at the front.
        See Also:
        Constant Field Values
      • CUSTOM

        public static final int CUSTOM
        Sort using a custom Comparator. Sort values are any Comparable and sorting is done according to natural order.
        See Also:
        Constant Field Values
      • BYTE

        public static final int BYTE
        Sort using term values as encoded Bytes. Sort values are Byte and lower values are at the front.
        See Also:
        Constant Field Values
      • STRING_VAL

        public static final int STRING_VAL
        Sort using term values as Strings, but comparing by value (using String.compareTo) for all comparisons. This is typically slower than STRING, which uses ordinals to do the sorting.
        See Also:
        Constant Field Values
      • FIELD_SCORE

        public static final SortField FIELD_SCORE
        Represents sorting by document score (relevance).
      • FIELD_DOC

        public static final SortField FIELD_DOC
        Represents sorting by document number (index order).
    • Constructor Detail

      • SortField

        public SortField​(String field,
                         int type)
        Creates a sort by terms in the given field with the type of term values explicitly given.
        Parameters:
        field - Name of field to sort by. Can be null if type is SCORE or DOC.
        type - Type of values in the terms.
      • SortField

        public SortField​(String field,
                         int type,
                         boolean reverse)
        Creates a sort, possibly in reverse, by terms in the given field with the type of term values explicitly given.
        Parameters:
        field - Name of field to sort by. Can be null if type is SCORE or DOC.
        type - Type of values in the terms.
        reverse - True if natural order should be reversed.
      • SortField

        public SortField​(String field,
                         FieldCache.Parser parser)
        Creates a sort by terms in the given field, parsed to numeric values using a custom FieldCache.Parser.
        Parameters:
        field - Name of field to sort by. Must not be null.
        parser - Instance of a FieldCache.Parser, which must subclass one of the existing numeric parsers from FieldCache. Sort type is inferred by testing which numeric parser the parser subclasses.
        Throws:
        IllegalArgumentException - if the parser fails to subclass an existing numeric parser, or field is null
      • SortField

        public SortField​(String field,
                         FieldCache.Parser parser,
                         boolean reverse)
        Creates a sort, possibly in reverse, by terms in the given field, parsed to numeric values using a custom FieldCache.Parser.
        Parameters:
        field - Name of field to sort by. Must not be null.
        parser - Instance of a FieldCache.Parser, which must subclass one of the existing numeric parsers from FieldCache. Sort type is inferred by testing which numeric parser the parser subclasses.
        reverse - True if natural order should be reversed.
        Throws:
        IllegalArgumentException - if the parser fails to subclass an existing numeric parser, or field is null
      • SortField

        public SortField​(String field,
                         Locale locale)
        Creates a sort by terms in the given field sorted according to the given locale.
        Parameters:
        field - Name of field to sort by, cannot be null.
        locale - Locale of values in the field.
      • SortField

        public SortField​(String field,
                         Locale locale,
                         boolean reverse)
        Creates a sort, possibly in reverse, by terms in the given field sorted according to the given locale.
        Parameters:
        field - Name of field to sort by, cannot be null.
        locale - Locale of values in the field.
      • SortField

        public SortField​(String field,
                         FieldComparatorSource comparator)
        Creates a sort with a custom comparison function.
        Parameters:
        field - Name of field to sort by; cannot be null.
        comparator - Returns a comparator for sorting hits.
      • SortField

        public SortField​(String field,
                         FieldComparatorSource comparator,
                         boolean reverse)
        Creates a sort, possibly in reverse, with a custom comparison function.
        Parameters:
        field - Name of field to sort by; cannot be null.
        comparator - Returns a comparator for sorting hits.
        reverse - True if natural order should be reversed.
    • Method Detail

      • setMissingValue

        public SortField setMissingValue​(Object missingValue)
        Set a default sorting value for documents which lacks one
      • getField

        public String getField()
        Returns the name of the field. Could return null if the sort is by SCORE or DOC.
        Returns:
        Name of field, possibly null.
      • getType

        public int getType()
        Returns the type of contents in the field.
        Returns:
        One of the constants SCORE, DOC, STRING, INT or FLOAT.
      • getLocale

        public Locale getLocale()
        Returns the Locale by which term values are interpreted. May return null if no Locale was specified.
        Returns:
        Locale, or null.
      • getParser

        public FieldCache.Parser getParser()
        Returns the instance of a FieldCache parser that fits to the given sort type. May return null if no parser was specified. Sorting is using the default parser then.
        Returns:
        An instance of a FieldCache parser, or null.
      • getReverse

        public boolean getReverse()
        Returns whether the sort should be reversed.
        Returns:
        True if natural order should be reversed.
      • getComparator

        public FieldComparator<?> getComparator​(int numHits,
                                                int sortPos)
                                         throws IOException
        Returns the FieldComparator to use for sorting.
        Parameters:
        numHits - number of top hits the queue will store
        sortPos - position of this SortField within Sort. The comparator is primary if sortPos==0, secondary if sortPos==1, etc. Some comparators can optimize themselves when they are the primary sort.
        Returns:
        FieldComparator to use when sorting
        Throws:
        IOException
        WARNING: This API is experimental and might change in incompatible ways in the next release.