Class FieldComparator.TermOrdValComparator

    • Constructor Detail

      • TermOrdValComparator

        public TermOrdValComparator​(int numHits,
                                    java.lang.String field)
        Creates this, sorting missing values first.
      • TermOrdValComparator

        public TermOrdValComparator​(int numHits,
                                    java.lang.String field,
                                    boolean sortMissingLast)
        Creates this, with control over how missing values are sorted. Pass sortMissingLast=true to put missing values at the end.
    • Method Detail

      • compare

        public int compare​(int slot1,
                           int slot2)
        Description copied from class: FieldComparator
        Compare hit at slot1 with hit at slot2.
        Specified by:
        compare in class FieldComparator<BytesRef>
        Parameters:
        slot1 - first slot to compare
        slot2 - second slot to compare
        Returns:
        any N < 0 if slot2's value is sorted after slot1, any N > 0 if the slot2's value is sorted before slot1 and 0 if they are equal
      • compareBottom

        public int compareBottom​(int doc)
        Description copied from class: FieldComparator
        Compare the bottom of the queue with this doc. This will only invoked after setBottom has been called. This should return the same result as FieldComparator.compare(int,int)} as if bottom were slot1 and the new document were slot 2.

        For a search that hits many results, this method will be the hotspot (invoked by far the most frequently).

        Specified by:
        compareBottom in class FieldComparator<BytesRef>
        Parameters:
        doc - that was hit
        Returns:
        any N < 0 if the doc's value is sorted after the bottom entry (not competitive), any N > 0 if the doc's value is sorted before the bottom entry and 0 if they are equal.
      • copy

        public void copy​(int slot,
                         int doc)
        Description copied from class: FieldComparator
        This method is called when a new hit is competitive. You should copy any state associated with this document that will be required for future comparisons, into the specified slot.
        Specified by:
        copy in class FieldComparator<BytesRef>
        Parameters:
        slot - which slot to copy the hit to
        doc - docID relative to current reader
      • setNextReader

        public FieldComparator<BytesRef> setNextReader​(AtomicReaderContext context)
                                                throws java.io.IOException
        Description copied from class: FieldComparator
        Set a new AtomicReaderContext. All subsequent docIDs are relative to the current reader (you must add docBase if you need to map it to a top-level docID).
        Specified by:
        setNextReader in class FieldComparator<BytesRef>
        Parameters:
        context - current reader context
        Returns:
        the comparator to use for this segment; most comparators can just return "this" to reuse the same comparator across segments
        Throws:
        java.io.IOException - if there is a low-level IO error
      • compareTop

        public int compareTop​(int doc)
        Description copied from class: FieldComparator
        Compare the top value with this doc. This will only invoked after setTopValue has been called. This should return the same result as FieldComparator.compare(int,int)} as if topValue were slot1 and the new document were slot 2. This is only called for searches that use searchAfter (deep paging).
        Specified by:
        compareTop in class FieldComparator<BytesRef>
        Parameters:
        doc - that was hit
        Returns:
        any N < 0 if the doc's value is sorted after the bottom entry (not competitive), any N > 0 if the doc's value is sorted before the bottom entry and 0 if they are equal.
      • compareValues

        public int compareValues​(BytesRef val1,
                                 BytesRef val2)
        Description copied from class: FieldComparator
        Returns -1 if first is less than second. Default impl to assume the type implements Comparable and invoke .compareTo; be sure to override this method if your FieldComparator's type isn't a Comparable or if your values may sometimes be null
        Overrides:
        compareValues in class FieldComparator<BytesRef>