Class SortField

  • Direct Known Subclasses:
    SortedNumericSortField, SortedSetSortField

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

        protected 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,
                         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

      • getMissingValue

        public Object getMissingValue()
        Return the value to use for documents that don't have a value. A value of null indicates that default should be used.
      • setMissingValue

        public void setMissingValue​(Object missingValue)
        Set the value to use for documents that don't have a value.
      • 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.
      • getReverse

        public boolean getReverse()
        Returns whether the sort should be reversed.
        Returns:
        True if natural order should be reversed.
      • equals

        public boolean equals​(Object o)
        Returns true if o is equal to this. If a FieldComparatorSource was provided, it must properly implement equals (unless a singleton is always used).
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Returns a hash code for this SortField instance. If a FieldComparatorSource 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)
        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
        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.
      • needsScores

        public boolean needsScores()
        Whether the relevance score is needed to sort documents.