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

Since:
lucene 1.4
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Sort
    Represents sorting by index order.
    static final Sort
    Represents sorting by computed relevance.
  • Constructor Summary

    Constructors
    Constructor
    Description
    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
    Returns true if o is equal to this.
    static SortField
    Returns the primary index sort field for the given LeafReader, or null if none is configured.
    Representation of the sort criteria.
    int
    Returns a hash code value for this object.
    boolean
    Returns true if the relevance score is needed to sort documents.
    Rewrites the SortFields in this Sort, returning a new Sort if any of the fields changes during their rewriting.
     

    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.
    • getPrimarySortField

      public static SortField getPrimarySortField(LeafReader reader)
      Returns the primary index sort field for the given LeafReader, or null if none is configured.

      If sorting against a field would have no effect then that SortField is skipped over and the next SortField in the list is returned. This can happen for fields with no values in the segment, or fields that have only a single distinct value.