org.apache.lucene.search

## Class SortField

- java.lang.Object
- - org.apache.lucene.search.SortField

-     public class SortField
      extends Object

  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`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SortField.Type` Specifies the type of the terms to be sorted, or special types such as CUSTOM

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static SortField` | `FIELD_DOC` Represents sorting by document number (index order).
    `static SortField` | `FIELD_SCORE` Represents sorting by document score (relevance).
    `Object` | `missingValue`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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, SortField.Type type)` Creates a sort by terms in the given field with the type of term values explicitly given.
    `SortField(String field, SortField.Type type, boolean reverse)` Creates a sort, possibly in reverse, by terms in the given field with the type of term values explicitly given.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object o)` Returns true if `o` is equal to this.
    `Comparator<BytesRef>` | `getBytesComparator()`
    `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.
    `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.
    `SortField.Type` | `getType()` Returns the type of contents in the field.
    `int` | `hashCode()` Returns true if `o` is equal to this.
    `SortField` | `rewrite(IndexSearcher searcher)` Rewrites this SortField, returning a new SortField if a change is made.
    `void` | `setBytesComparator(Comparator<BytesRef> b)`
    `SortField` | `setMissingValue(Object missingValue)`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

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

    - #### missingValue

          public Object missingValue

  - ### Constructor Detail

    - #### SortField

          public SortField(String field,
                   SortField.Type 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,
                   SortField.Type 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,
                   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)

    - #### 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 SortField.Type getType()

      Returns the type of contents in the field.
      Returns:
        One of the constants SCORE, DOC, STRING, INT or FLOAT.

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

    - #### setBytesComparator

          public void setBytesComparator(Comparator<BytesRef> b)

    - #### getBytesComparator

          public Comparator<BytesRef> getBytesComparator()

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

    - #### rewrite

          public SortField rewrite(IndexSearcher searcher)
                            throws IOException

      Rewrites this SortField, returning a new SortField if a change is made. Subclasses should override this define their rewriting behavior when this SortField is of type `SortField.Type.REWRITEABLE`
      Parameters:
        `searcher` - IndexSearcher to use during rewriting
      Returns:
        New rewritten SortField, or `this` if nothing has changed.
      Throws:
        `IOException` - Can be thrown by the rewriting
      WARNING: This API is experimental and might change in incompatible ways in the next release.

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.