Package org.apache.lucene.search.comparators

# Class DoubleComparator

java.lang.Object
org.apache.lucene.search.FieldComparator<Double>
org.apache.lucene.search.comparators.NumericComparator<Double>
org.apache.lucene.search.comparators.DoubleComparator

public class DoubleComparator extends NumericComparator<Double>
Comparator based on `Double.compare(double, double)` for `numHits`. This comparator provides a skipping functionality - an iterator that can skip over non-competitive documents.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`class`
`DoubleComparator.DoubleLeafComparator`
Leaf comparator for `DoubleComparator` that provides skipping functionality

## Nested classes/interfaces inherited from class org.apache.lucene.search.comparators.NumericComparator

`NumericComparator.NumericLeafComparator`

## Nested classes/interfaces inherited from class org.apache.lucene.search.FieldComparator

`FieldComparator.RelevanceComparator, FieldComparator.TermValComparator`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected double`
`bottom`
`protected double`
`topValue`

### Fields inherited from class org.apache.lucene.search.comparators.NumericComparator

`field, hitsThresholdReached, missingValue, pruning, queueFull, reverse, singleSort, topValueSet`

## Constructor Summary

Constructors
Constructor
Description
`DoubleComparator(int numHits, String field, Double missingValue, boolean reverse, Pruning pruning)`

## Method Summary

Modifier and Type
Method
Description
`int`
`compare(int slot1, int slot2)`
Compare hit at slot1 with hit at slot2.
`LeafFieldComparator`
`getLeafComparator(LeafReaderContext context)`
Get a per-segment `LeafFieldComparator` to collect the given `LeafReaderContext`.
`protected long`
`missingValueAsComparableLong()`
`void`
`setTopValue(Double value)`
Record the top value, for future calls to `LeafFieldComparator.compareTop(int)`.
`protected long`
`sortableBytesToLong(byte[] bytes)`
Decode sortable bytes to long.
`Double`
`value(int slot)`
Return the actual value in the slot.

### Methods inherited from class org.apache.lucene.search.comparators.NumericComparator

`disableSkipping, setSingleSort`

### Methods inherited from class org.apache.lucene.search.FieldComparator

`compareValues`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### topValue

protected double topValue

### bottom

protected double bottom

## Constructor Details

### DoubleComparator

public DoubleComparator(int numHits, String field, Double missingValue, boolean reverse, Pruning pruning)

## Method Details

### 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<Double>`
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

### setTopValue

public void setTopValue(Double value)
Description copied from class: `FieldComparator`
Record the top value, for future calls to `LeafFieldComparator.compareTop(int)`. This is only called for searches that use searchAfter (deep paging), and is called before any calls to `FieldComparator.getLeafComparator(LeafReaderContext)`.

Overrides:
  `setTopValue` in class `NumericComparator<Double>`

### value

public Double value(int slot)
Description copied from class: `FieldComparator`
Return the actual value in the slot.

Specified by:
  `value` in class `FieldComparator<Double>`
Parameters:
  `slot` - the value
Returns:
  value in this slot

### missingValueAsComparableLong

protected long missingValueAsComparableLong()

Specified by:
  `missingValueAsComparableLong` in class `NumericComparator<Double>`

### sortableBytesToLong

protected long sortableBytesToLong(byte[] bytes)
Description copied from class: `NumericComparator`
Decode sortable bytes to long. It should be consistent with the codec that `PointValues` of this field is using.

Specified by:
  `sortableBytesToLong` in class `NumericComparator<Double>`

### getLeafComparator

public LeafFieldComparator getLeafComparator(LeafReaderContext context) throws IOException
Description copied from class: `FieldComparator`
Get a per-segment `LeafFieldComparator` to collect the given `LeafReaderContext`. All docIDs supplied to this `LeafFieldComparator` are relative to the current reader (you must add docBase if you need to map it to a top-level docID).

Specified by:
  `getLeafComparator` in class `FieldComparator<Double>`
Parameters:
  `context` - current reader context
Returns:
  the comparator to use for this segment
Throws:
  `IOException` - if there is a low-level IO error