Class SortedSetSortField


  • public class SortedSetSortField
    extends SortField
    SortField for SortedSetDocValues.

    A SortedSetDocValues 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 set is selected as the sort value, but this can be customized. Selectors other than the default do have some limitations to ensure that all selections happen in constant-time for performance.

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

    See Also:
    SortedSetSelector
    • Constructor Detail

      • SortedSetSortField

        public SortedSetSortField​(java.lang.String field,
                                  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.
        reverse - True if natural order should be reversed.
      • SortedSetSortField

        public SortedSetSortField​(java.lang.String field,
                                  boolean reverse,
                                  SortedSetSelector.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.
        reverse - True if natural order should be reversed.
        selector - custom selector type for choosing the sort value from the set.

        NOTE: selectors other than SortedSetSelector.Type.MIN require optional codec support.

    • Method Detail

      • serialize

        private void serialize​(DataOutput out)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • 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​(java.lang.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).
        Overrides:
        equals in class SortField
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class SortField
      • getValues

        private SortedDocValues getValues​(LeafReader reader)
                                   throws java.io.IOException
        Throws:
        java.io.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