Package org.apache.lucene.search
Class SortField
- java.lang.Object
 - 
- org.apache.lucene.search.SortField
 
 
- 
public class SortField extends java.lang.ObjectStores 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
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSortField.TypeSpecifies the type of the terms to be sorted, or special types such as CUSTOM 
- 
Field Summary
Fields Modifier and Type Field Description static SortFieldFIELD_DOCRepresents sorting by document number (index order).static SortFieldFIELD_SCORERepresents sorting by document score (relevance).java.lang.ObjectmissingValuebooleansortMissingLaststatic java.lang.ObjectSTRING_FIRSTPass this tosetMissingValue(java.lang.Object)to have missing string values sort first.static java.lang.ObjectSTRING_LASTPass this tosetMissingValue(java.lang.Object)to have missing string values sort last. 
- 
Constructor Summary
Constructors Constructor Description SortField(java.lang.String field, FieldCache.Parser parser)Creates a sort by terms in the given field, parsed to numeric values using a customFieldCache.Parser.SortField(java.lang.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(java.lang.String field, FieldComparatorSource comparator)Creates a sort with a custom comparison function.SortField(java.lang.String field, FieldComparatorSource comparator, boolean reverse)Creates a sort, possibly in reverse, with a custom comparison function.SortField(java.lang.String field, SortField.Type type)Creates a sort by terms in the given field with the type of term values explicitly given.SortField(java.lang.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. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object o)Returns true ifois equal to this.java.util.Comparator<BytesRef>getBytesComparator()FieldComparator<?>getComparator(int numHits, int sortPos)Returns theFieldComparatorto use for sorting.FieldComparatorSourcegetComparatorSource()Returns theFieldComparatorSourceused for custom sortingjava.lang.StringgetField()Returns the name of the field.FieldCache.ParsergetParser()Returns the instance of aFieldCacheparser that fits to the given sort type.booleangetReverse()Returns whether the sort should be reversed.SortField.TypegetType()Returns the type of contents in the field.inthashCode()Returns true ifois equal to this.booleanneedsScores()Whether the relevance score is needed to sort documents.SortFieldrewrite(IndexSearcher searcher)Rewrites this SortField, returning a new SortField if a change is made.voidsetBytesComparator(java.util.Comparator<BytesRef> b)voidsetMissingValue(java.lang.Object missingValue)java.lang.StringtoString() 
 - 
 
- 
- 
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
public java.lang.Object missingValue
 
- 
sortMissingLast
public boolean sortMissingLast
 
- 
STRING_FIRST
public static final java.lang.Object STRING_FIRST
Pass this tosetMissingValue(java.lang.Object)to have missing string values sort first. 
- 
STRING_LAST
public static final java.lang.Object STRING_LAST
Pass this tosetMissingValue(java.lang.Object)to have missing string values sort last. 
 - 
 
- 
Constructor Detail
- 
SortField
public SortField(java.lang.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 benulliftypeis SCORE or DOC.type- Type of values in the terms.
 
- 
SortField
public SortField(java.lang.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 benulliftypeis SCORE or DOC.type- Type of values in the terms.reverse- True if natural order should be reversed.
 
- 
SortField
public SortField(java.lang.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:
 java.lang.IllegalArgumentException- if the parser fails to subclass an existing numeric parser, or field is null
 
- 
SortField
public SortField(java.lang.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:
 java.lang.IllegalArgumentException- if the parser fails to subclass an existing numeric parser, or field is null
 
- 
SortField
public SortField(java.lang.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(java.lang.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 void setMissingValue(java.lang.Object missingValue)
 
- 
getField
public java.lang.String getField()
Returns the name of the field. Could returnnullif 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.
 
 
- 
getParser
public FieldCache.Parser getParser()
Returns the instance of aFieldCacheparser that fits to the given sort type. May returnnullif no parser was specified. Sorting is using the default parser then.- Returns:
 - An instance of a 
FieldCacheparser, 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 theFieldComparatorSourceused for custom sorting 
- 
toString
public java.lang.String toString()
- Overrides:
 toStringin classjava.lang.Object
 
- 
equals
public boolean equals(java.lang.Object o)
Returns true ifois equal to this. If aFieldComparatorSourceorFieldCache.Parserwas provided, it must properly implement equals (unless a singleton is always used).- Overrides:
 equalsin classjava.lang.Object
 
- 
hashCode
public int hashCode()
Returns true ifois equal to this. If aFieldComparatorSourceorFieldCache.Parserwas provided, it must properly implement hashCode (unless a singleton is always used).- Overrides:
 hashCodein classjava.lang.Object
 
- 
setBytesComparator
public void setBytesComparator(java.util.Comparator<BytesRef> b)
 
- 
getBytesComparator
public java.util.Comparator<BytesRef> getBytesComparator()
 
- 
getComparator
public FieldComparator<?> getComparator(int numHits, int sortPos) throws java.io.IOException
Returns theFieldComparatorto 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:
 FieldComparatorto use when sorting- Throws:
 java.io.IOException
 
- 
rewrite
public SortField rewrite(IndexSearcher searcher) throws java.io.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 typeSortField.Type.REWRITEABLE- Parameters:
 searcher- IndexSearcher to use during rewriting- Returns:
 - New rewritten SortField, or 
thisif nothing has changed. - Throws:
 java.io.IOException- Can be thrown by the rewriting
 
- 
needsScores
public boolean needsScores()
Whether the relevance score is needed to sort documents. 
 - 
 
 -