## org.apache.lucene.search
Class SortField

    java.lang.Object
      org.apache.lucene.search.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 Summary
`static int` `BYTE` Sort using term values as encoded Bytes.
`static int` `CUSTOM` Sort using a custom Comparator.
`static int` `DOC` Sort by document number (index order).
`static int` `DOUBLE` Sort using term values as encoded Doubles.
`static SortField` `FIELD_DOC` Represents sorting by document number (index order).
`static SortField` `FIELD_SCORE` Represents sorting by document score (relevance).
`static int` `FLOAT` Sort using term values as encoded Floats.
`static int` `INT` Sort using term values as encoded Integers.
`static int` `LONG` Sort using term values as encoded Longs.
`static int` `SCORE` Sort by document score (relevance).
`static int` `SHORT` Sort using term values as encoded Shorts.
`static int` `STRING` Sort using term values as Strings.
`static int` `STRING_VAL` Sort using term values as Strings, but comparing by value (using String.compareTo) for all comparisons.

Constructor Summary
`SortField(String field, FieldCache.Parser parser)` Creates a sort by terms in the given field, parsed to numeric values using a custom `FieldCache.Parser`.
`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`.
`SortField(String field, FieldComparatorSource comparator)` Creates a sort with a custom comparison function.
`SortField(String field, FieldComparatorSource comparator, boolean reverse)` Creates a sort, possibly in reverse, with a custom comparison function.
`SortField(String field, int type)` Creates a sort by terms in the given field with the type of term values explicitly given.
`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.
`SortField(String field, Locale locale)` Creates a sort by terms in the given field sorted according to the given locale.
`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.

Method Summary
`boolean` `equals(Object o)` Returns true if `o` is equal to this.
`FieldComparator<?>` `getComparator(int numHits, int sortPos)` Returns the `FieldComparator` to use for sorting.
`FieldComparatorSource` `getComparatorSource()` Returns the `FieldComparatorSource` used for custom sorting
`String` `getField()` Returns the name of the field.
`Locale` `getLocale()` Returns the Locale by which term values are interpreted.
`FieldCache.Parser` `getParser()` Returns the instance of a `FieldCache` parser that fits to the given sort type.
`boolean` `getReverse()` Returns whether the sort should be reversed.
`int` `getType()` Returns the type of contents in the field.
`int` `hashCode()` Returns true if `o` is equal to this.
`SortField` `setMissingValue(Object missingValue)` Set a default sorting value for documents which lacks one
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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.

### getComparatorSource

    public FieldComparatorSource getComparatorSource()

  Returns the `FieldComparatorSource` used for custom sorting

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### equals

    public boolean equals(Object o)

  Returns true if `o` is equal to this. If a `FieldComparatorSource` or `FieldCache.Parser` was provided, it must properly implement equals (unless a singleton is always used).

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Returns true if `o` is equal to this. If a `FieldComparatorSource` or `FieldCache.Parser` was provided, it must properly implement hashCode (unless a singleton is always used).

  Overrides:
    `hashCode` in class `Object`

### 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.