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 final Sort`
`INDEXORDER`
Represents sorting by index order.
`static final 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

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 Details

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

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

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