org.apache.lucene.search
Class SortField

java.lang.Object
  extended by org.apache.lucene.search.SortField

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

Nested Class Summary
static class SortField.Type
          Specifies the type of the terms to be sorted, or special types such as CUSTOM
 
Field Summary
static SortField FIELD_DOC
          Represents sorting by document number (index order).
static SortField FIELD_SCORE
          Represents sorting by document score (relevance).
 Object missingValue
           
 
Constructor Summary
SortField(String field, FieldCache.Parser parser)
          Creates a sort by terms in the given field, parsed to numeric values using a custom FieldCache.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 custom FieldCache.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.
SortField(String field, SortField.Type type)
          Creates a sort by terms in the given field with the type of term values explicitly given.
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.
 
Method Summary
 boolean equals(Object o)
          Returns true if o is equal to this.
 Comparator<BytesRef> getBytesComparator()
           
 FieldComparator<?> getComparator(int numHits, int sortPos)
          Returns the FieldComparator to use for sorting.
 FieldComparatorSource getComparatorSource()
          Returns the FieldComparatorSource used for custom sorting
 String getField()
          Returns the name of the field.
 FieldCache.Parser getParser()
          Returns the instance of a FieldCache parser that fits to the given sort type.
 boolean getReverse()
          Returns whether the sort should be reversed.
 SortField.Type getType()
          Returns the type of contents in the field.
 int hashCode()
          Returns true if o is equal to this.
 SortField rewrite(IndexSearcher searcher)
          Rewrites this SortField, returning a new SortField if a change is made.
 void setBytesComparator(Comparator<BytesRef> b)
           
 SortField setMissingValue(Object missingValue)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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 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,
                 FieldCache.Parser parser)
Creates a sort by terms in the given field, parsed to numeric values using a custom FieldCache.Parser.

Parameters:
field - Name of field to sort by. Must not be null.
parser - Instance of a FieldCache.Parser, which must subclass one of the existing numeric parsers from FieldCache. 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 custom FieldCache.Parser.

Parameters:
field - Name of field to sort by. Must not be null.
parser - Instance of a FieldCache.Parser, which must subclass one of the existing numeric parsers from FieldCache. 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,
                 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

setMissingValue

public SortField setMissingValue(Object missingValue)

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.

getParser

public FieldCache.Parser getParser()
Returns the instance of a FieldCache parser that fits to the given sort type. May return null if no parser was specified. Sorting is using the default parser then.

Returns:
An instance of a FieldCache parser, or null.

getReverse

public boolean getReverse()
Returns whether the sort should be reversed.

Returns:
True if natural order should be reversed.

getComparatorSource

public FieldComparatorSource getComparatorSource()
Returns the FieldComparatorSource used for custom sorting


toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object o)
Returns true if o is equal to this. If a FieldComparatorSource or FieldCache.Parser was provided, it must properly implement equals (unless a singleton is always used).

Overrides:
equals in class Object

hashCode

public int hashCode()
Returns true if o is equal to this. If a FieldComparatorSource or FieldCache.Parser was provided, it must properly implement hashCode (unless a singleton is always used).

Overrides:
hashCode in class Object

setBytesComparator

public void setBytesComparator(Comparator<BytesRef> b)

getBytesComparator

public Comparator<BytesRef> getBytesComparator()

getComparator

public FieldComparator<?> getComparator(int numHits,
                                        int sortPos)
                                 throws IOException
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
Throws:
IOException
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.


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.