Package org.apache.lucene.search

## Class Sort

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

-     public final class Sort
      extends Object

  Encapsulates sort criteria for returned hits.

  A `Sort` can be created with an empty constructor, yielding an object that will instruct searches to return their hits sorted by relevance; or it can be created with one or more `SortField`s.

  Since:
    lucene 1.4
  See Also:
    `SortField`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Sort` | `INDEXORDER` | Represents sorting by index order.
    `static Sort` | `RELEVANCE` | Represents sorting by computed relevance.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Sort()` | Sorts by computed relevance.
    `Sort​(SortField... fields)` | Sets the sort to the given criteria in succession: the first SortField is checked first, but if it produces a tie, then the second SortField is used to break the tie, etc.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object o)` | Returns true if `o` is equal to this.
    `SortField[]` | `getSort()` | Representation of the sort criteria.
    `int` | `hashCode()` | Returns a hash code value for this object.
    `boolean` | `needsScores()` | Returns true if the relevance score is needed to sort documents.
    `Sort` | `rewrite​(IndexSearcher searcher)` | Rewrites the SortFields in this Sort, returning a new Sort if any of the fields changes during their rewriting.
    `String` | `toString()` |

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

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

- - ### Field Detail

    - #### RELEVANCE

          public static final Sort RELEVANCE

      Represents sorting by computed relevance. Using this sort criteria returns the same results as calling `IndexSearcher#search()`without a sort criteria, only with slightly more overhead.

    - #### INDEXORDER

          public static final Sort INDEXORDER

      Represents sorting by index order.

  - ### Constructor Detail

    - #### Sort

          public Sort()

      Sorts by computed relevance. This is the same sort criteria as calling `IndexSearcher#search()`without a sort criteria, only with slightly more overhead.

    - #### Sort

          public Sort​(SortField... fields)

      Sets the sort to the given criteria in succession: the first SortField is checked first, but if it produces a tie, then the second SortField is used to break the tie, etc. Finally, if there is still a tie after all SortFields are checked, the internal Lucene docid is used to break it.

  - ### Method Detail

    - #### getSort

          public SortField[] getSort()

      Representation of the sort criteria.
      Returns:
        Array of SortField objects used in this sort criteria

    - #### rewrite

          public Sort rewrite​(IndexSearcher searcher)
                       throws IOException

      Rewrites the SortFields in this Sort, returning a new Sort if any of the fields changes during their rewriting.
      Parameters:
        `searcher` - IndexSearcher to use in the rewriting
      Returns:
        `this` if the Sort/Fields have not changed, or a new Sort if there is a change
      Throws:
        `IOException` - Can be thrown by the rewriting
      WARNING: This API is experimental and might change in incompatible ways in the next release.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### equals

          public boolean equals​(Object o)

      Returns true if `o` is equal to this.
      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Returns a hash code value for this object.
      Overrides:
        `hashCode` in class `Object`

    - #### needsScores

          public boolean needsScores()

      Returns true if the relevance score is needed to sort documents.