Class SortedNumericSortField

java.lang.Object
org.apache.lucene.search.SortField
org.apache.lucene.search.SortedNumericSortField

public class SortedNumericSortField extends SortField
SortField for SortedNumericDocValues.

A SortedNumericDocValues contains multiple values for a field, so sorting with this technique "selects" a value as the representative sort value for the document.

By default, the minimum value in the list is selected as the sort value, but this can be customized.

Like sorting by string, this also supports sorting missing values as first or last, via setMissingValue(Object).

See Also:
  • Field Details

  • Constructor Details

    • SortedNumericSortField

      public SortedNumericSortField(String field, SortField.Type type)
      Creates a sort, by the minimum value in the set for the document.
      Parameters:
      field - Name of field to sort by. Must not be null.
      type - Type of values
    • SortedNumericSortField

      public SortedNumericSortField(String field, SortField.Type type, boolean reverse)
      Creates a sort, possibly in reverse, by the minimum value in the set for the document.
      Parameters:
      field - Name of field to sort by. Must not be null.
      type - Type of values
      reverse - True if natural order should be reversed.
    • SortedNumericSortField

      public SortedNumericSortField(String field, SortField.Type type, boolean reverse, SortedNumericSelector.Type selector)
      Creates a sort, possibly in reverse, specifying how the sort value from the document's set is selected.
      Parameters:
      field - Name of field to sort by. Must not be null.
      type - Type of values
      reverse - True if natural order should be reversed.
      selector - custom selector type for choosing the sort value from the set.
  • Method Details

    • readSelectorType

      private static SortedNumericSelector.Type readSelectorType(DataInput in) throws IOException
      Throws:
      IOException
    • serialize

      private void serialize(DataOutput out) throws IOException
      Throws:
      IOException
    • getNumericType

      public SortField.Type getNumericType()
      Returns the numeric type in use for this sort
    • getSelector

      public SortedNumericSelector.Type getSelector()
      Returns the selector in use for this sort
    • hashCode

      public int hashCode()
      Description copied from class: SortField
      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 SortField
    • equals

      public boolean equals(Object obj)
      Description copied from class: SortField
      Returns true if o is equal to this. If a FieldComparatorSource was provided, it must properly implement equals (unless a singleton is always used). canUsePoints field is not part of equals and hasCode intentionally, as it is only useful during search-time and using it in these functions prevents index sorting optimizations that rely on the equality of the index-time and search-time SortField instances.
      Overrides:
      equals in class SortField
    • toString

      public String toString()
      Overrides:
      toString in class SortField
    • setMissingValue

      public void setMissingValue(Object missingValue)
      Description copied from class: SortField
      Set the value to use for documents that don't have a value.
      Overrides:
      setMissingValue in class SortField
    • getComparator

      public FieldComparator<?> getComparator(int numHits, int sortPos)
      Description copied from class: SortField
      Returns the FieldComparator to use for sorting.
      Overrides:
      getComparator in class SortField
      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
    • getValue

      private NumericDocValues getValue(LeafReader reader) throws IOException
      Throws:
      IOException
    • getIndexSorter

      public IndexSorter getIndexSorter()
      Description copied from class: SortField
      Returns an IndexSorter used for sorting index segments by this SortField. If the SortField cannot be used for index sorting (for example, if it uses scores or other query-dependent values) then this method should return null SortFields that implement this method should also implement a companion SortFieldProvider to serialize and deserialize the sort in index segment headers
      Overrides:
      getIndexSorter in class SortField