public class IndexSortSortedNumericDocValuesRangeQuery extends Query
SortedNumericDocValues
or NumericDocValues
.
fallbackQuery
.
This fallback must be an equivalent range query -- it should produce the same documents and give
constant scores. As an example, an IndexSortSortedNumericDocValuesRangeQuery
might be
constructed as follows:
String field = "field"; long lowerValue = 0, long upperValue = 10; Query fallbackQuery = LongPoint.newRangeQuery(field, lowerValue, upperValue); Query rangeQuery = new IndexSortSortedNumericDocValuesRangeQuery( field, lowerValue, upperValue, fallbackQuery);
Modifier and Type | Class and Description |
---|---|
private static class |
IndexSortSortedNumericDocValuesRangeQuery.BoundedDocSetIdIterator
A doc ID set iterator that wraps a delegate iterator and only returns doc IDs in
the range [firstDocInclusive, lastDoc).
|
private static interface |
IndexSortSortedNumericDocValuesRangeQuery.ValueComparator
Compares the given document's value with a stored reference value.
|
Modifier and Type | Field and Description |
---|---|
private Query |
fallbackQuery |
private java.lang.String |
field |
private long |
lowerValue |
private long |
upperValue |
Constructor and Description |
---|
IndexSortSortedNumericDocValuesRangeQuery(java.lang.String field,
long lowerValue,
long upperValue,
Query fallbackQuery)
Creates a new
IndexSortSortedNumericDocValuesRangeQuery . |
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Expert: Constructs an appropriate Weight implementation for this query.
|
boolean |
equals(java.lang.Object o)
Override and implement query instance equivalence properly in a subclass.
|
private DocIdSetIterator |
getDocIdSetIterator(SortField sortField,
LeafReaderContext context,
DocIdSetIterator delegate)
Computes the document IDs that lie within the range [lowerValue, upperValue] by
performing binary search on the field's doc values.
|
Query |
getFallbackQuery() |
int |
hashCode()
Override and implement query hash code properly in a subclass.
|
private static IndexSortSortedNumericDocValuesRangeQuery.ValueComparator |
loadComparator(SortField sortField,
long topValue,
LeafReaderContext context) |
Query |
rewrite(IndexReader reader)
Expert: called to re-write queries into primitive queries.
|
java.lang.String |
toString(java.lang.String field)
Prints a query to a string, with
field assumed to be the
default field and omitted. |
void |
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries
|
classHash, sameClassAs, toString
private final java.lang.String field
private final long lowerValue
private final long upperValue
private final Query fallbackQuery
public IndexSortSortedNumericDocValuesRangeQuery(java.lang.String field, long lowerValue, long upperValue, Query fallbackQuery)
IndexSortSortedNumericDocValuesRangeQuery
.field
- The field name.lowerValue
- The lower end of the range (inclusive).upperValue
- The upper end of the range (exclusive).fallbackQuery
- A query to fall back to if the optimization cannot be applied.public Query getFallbackQuery()
public boolean equals(java.lang.Object o)
Query
QueryCache
works properly.
Typically a query will be equal to another only if it's an instance of
the same class and its document-filtering properties are identical that other
instance. Utility methods are provided for certain repetitive code.equals
in class Query
Query.sameClassAs(Object)
,
Query.classHash()
public int hashCode()
Query
QueryCache
works properly.hashCode
in class Query
Query.equals(Object)
public void visit(QueryVisitor visitor)
Query
public java.lang.String toString(java.lang.String field)
Query
field
assumed to be the
default field and omitted.public Query rewrite(IndexReader reader) throws java.io.IOException
Query
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.java.io.IOException
private DocIdSetIterator getDocIdSetIterator(SortField sortField, LeafReaderContext context, DocIdSetIterator delegate) throws java.io.IOException
FieldComparator
instead of checking the docvalues directly.
The returned DocIdSetIterator
makes sure to wrap the original docvalues to skip
over documents with no value.java.io.IOException
private static IndexSortSortedNumericDocValuesRangeQuery.ValueComparator loadComparator(SortField sortField, long topValue, LeafReaderContext context) throws java.io.IOException
java.io.IOException