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, toStringprivate 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)
QueryQueryCache 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 QueryQuery.sameClassAs(Object),
Query.classHash()public int hashCode()
QueryQueryCache works properly.hashCode in class QueryQuery.equals(Object)public void visit(QueryVisitor visitor)
Querypublic java.lang.String toString(java.lang.String field)
Queryfield assumed to be the
default field and omitted.public Query rewrite(IndexReader reader) throws java.io.IOException
Querypublic Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
QueryOnly implemented by primitive queries, which re-write to themselves.
createWeight in class QueryscoreMode - How the produced scorers will be consumed.boost - The boost that is propagated by the parent queries.java.io.IOExceptionprivate 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.IOExceptionprivate static IndexSortSortedNumericDocValuesRangeQuery.ValueComparator loadComparator(SortField sortField, long topValue, LeafReaderContext context) throws java.io.IOException
java.io.IOException