Package org.apache.lucene.search
Class SortField
- java.lang.Object
-
- org.apache.lucene.search.SortField
-
- All Implemented Interfaces:
Serializable
public class SortField extends Object implements Serializable
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
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
BYTE
Sort using term values as encoded Bytes.static int
CUSTOM
Sort using a custom Comparator.static int
DOC
Sort by document number (index order).static int
DOUBLE
Sort using term values as encoded Doubles.static SortField
FIELD_DOC
Represents sorting by document number (index order).static SortField
FIELD_SCORE
Represents sorting by document score (relevance).static int
FLOAT
Sort using term values as encoded Floats.static int
INT
Sort using term values as encoded Integers.static int
LONG
Sort using term values as encoded Longs.static int
SCORE
Sort by document score (relevance).static int
SHORT
Sort using term values as encoded Shorts.static int
STRING
Sort using term values as Strings.static int
STRING_VAL
Sort using term values as Strings, but comparing by value (using String.compareTo) for all comparisons.
-
Constructor Summary
Constructors Constructor Description SortField(String field, int type)
Creates a sort by terms in the given field with the type of term values explicitly given.SortField(String field, int type, boolean reverse)
Creates a sort, possibly in reverse, by terms in the given field with the type of term values explicitly given.SortField(String field, Locale locale)
Creates a sort by terms in the given field sorted according to the given locale.SortField(String field, Locale locale, boolean reverse)
Creates a sort, possibly in reverse, by terms in the given field sorted according to the given locale.SortField(String field, FieldCache.Parser parser)
Creates a sort by terms in the given field, parsed to numeric values using a customFieldCache.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 customFieldCache.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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Returns true ifo
is equal to this.FieldComparator<?>
getComparator(int numHits, int sortPos)
Returns theFieldComparator
to use for sorting.FieldComparatorSource
getComparatorSource()
Returns theFieldComparatorSource
used for custom sortingString
getField()
Returns the name of the field.Locale
getLocale()
Returns the Locale by which term values are interpreted.FieldCache.Parser
getParser()
Returns the instance of aFieldCache
parser that fits to the given sort type.boolean
getReverse()
Returns whether the sort should be reversed.int
getType()
Returns the type of contents in the field.int
hashCode()
Returns true ifo
is equal to this.SortField
setMissingValue(Object missingValue)
Set a default sorting value for documents which lacks oneString
toString()
-
-
-
Field Detail
-
SCORE
public static final int SCORE
Sort by document score (relevance). Sort values are Float and higher values are at the front.- See Also:
- Constant Field Values
-
DOC
public static final int DOC
Sort by document number (index order). Sort values are Integer and lower values are at the front.- See Also:
- Constant Field Values
-
STRING
public static final int STRING
Sort using term values as Strings. Sort values are String and lower values are at the front.- See Also:
- Constant Field Values
-
INT
public static final int INT
Sort using term values as encoded Integers. Sort values are Integer and lower values are at the front.- See Also:
- Constant Field Values
-
FLOAT
public static final int FLOAT
Sort using term values as encoded Floats. Sort values are Float and lower values are at the front.- See Also:
- Constant Field Values
-
LONG
public static final int LONG
Sort using term values as encoded Longs. Sort values are Long and lower values are at the front.- See Also:
- Constant Field Values
-
DOUBLE
public static final int DOUBLE
Sort using term values as encoded Doubles. Sort values are Double and lower values are at the front.- See Also:
- Constant Field Values
-
SHORT
public static final int SHORT
Sort using term values as encoded Shorts. Sort values are Short and lower values are at the front.- See Also:
- Constant Field Values
-
CUSTOM
public static final int CUSTOM
Sort using a custom Comparator. Sort values are any Comparable and sorting is done according to natural order.- See Also:
- Constant Field Values
-
BYTE
public static final int BYTE
Sort using term values as encoded Bytes. Sort values are Byte and lower values are at the front.- See Also:
- Constant Field Values
-
STRING_VAL
public static final int STRING_VAL
Sort using term values as Strings, but comparing by value (using String.compareTo) for all comparisons. This is typically slower thanSTRING
, which uses ordinals to do the sorting.- See Also:
- Constant Field Values
-
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).
-
-
Constructor Detail
-
SortField
public SortField(String field, int 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 benull
iftype
is SCORE or DOC.type
- Type of values in the terms.
-
SortField
public SortField(String field, int 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 benull
iftype
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 customFieldCache.Parser
.- Parameters:
field
- Name of field to sort by. Must not be null.parser
- Instance of aFieldCache.Parser
, which must subclass one of the existing numeric parsers fromFieldCache
. 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 customFieldCache.Parser
.- Parameters:
field
- Name of field to sort by. Must not be null.parser
- Instance of aFieldCache.Parser
, which must subclass one of the existing numeric parsers fromFieldCache
. 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, Locale locale)
Creates a sort by terms in the given field sorted according to the given locale.- Parameters:
field
- Name of field to sort by, cannot benull
.locale
- Locale of values in the field.
-
SortField
public SortField(String field, Locale locale, boolean reverse)
Creates a sort, possibly in reverse, by terms in the given field sorted according to the given locale.- Parameters:
field
- Name of field to sort by, cannot benull
.locale
- Locale of values in the field.
-
SortField
public SortField(String field, FieldComparatorSource comparator)
Creates a sort with a custom comparison function.- Parameters:
field
- Name of field to sort by; cannot benull
.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 benull
.comparator
- Returns a comparator for sorting hits.reverse
- True if natural order should be reversed.
-
-
Method Detail
-
setMissingValue
public SortField setMissingValue(Object missingValue)
Set a default sorting value for documents which lacks one
-
getField
public String getField()
Returns the name of the field. Could returnnull
if the sort is by SCORE or DOC.- Returns:
- Name of field, possibly
null
.
-
getType
public int getType()
Returns the type of contents in the field.- Returns:
- One of the constants SCORE, DOC, STRING, INT or FLOAT.
-
getLocale
public Locale getLocale()
Returns the Locale by which term values are interpreted. May returnnull
if no Locale was specified.- Returns:
- Locale, or
null
.
-
getParser
public FieldCache.Parser getParser()
Returns the instance of aFieldCache
parser that fits to the given sort type. May returnnull
if no parser was specified. Sorting is using the default parser then.- Returns:
- An instance of a
FieldCache
parser, ornull
.
-
getReverse
public boolean getReverse()
Returns whether the sort should be reversed.- Returns:
- True if natural order should be reversed.
-
getComparatorSource
public FieldComparatorSource getComparatorSource()
Returns theFieldComparatorSource
used for custom sorting
-
equals
public boolean equals(Object o)
Returns true ifo
is equal to this. If aFieldComparatorSource
orFieldCache.Parser
was provided, it must properly implement equals (unless a singleton is always used).
-
hashCode
public int hashCode()
Returns true ifo
is equal to this. If aFieldComparatorSource
orFieldCache.Parser
was provided, it must properly implement hashCode (unless a singleton is always used).
-
getComparator
public FieldComparator<?> getComparator(int numHits, int sortPos) throws IOException
Returns theFieldComparator
to use for sorting.- Parameters:
numHits
- number of top hits the queue will storesortPos
- position of this SortField withinSort
. 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.
-
-