Package org.apache.lucene.search
Class TermRangeQuery
- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.search.MultiTermQuery
-
- org.apache.lucene.search.TermRangeQuery
-
- All Implemented Interfaces:
Cloneable
public class TermRangeQuery extends MultiTermQuery
A Query that matches documents within an range of terms.This query matches the documents looking for terms that fall into the supplied range according to
Byte.compareTo(Byte)
. It is not intended for numerical ranges; useNumericRangeQuery
instead.This query uses the
MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT
rewrite method.- Since:
- 2.9
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.search.MultiTermQuery
MultiTermQuery.ConstantScoreAutoRewrite, MultiTermQuery.RewriteMethod, MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite, MultiTermQuery.TopTermsScoringBooleanQueryRewrite
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.search.MultiTermQuery
CONSTANT_SCORE_AUTO_REWRITE_DEFAULT, CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE, CONSTANT_SCORE_FILTER_REWRITE, field, rewriteMethod, SCORING_BOOLEAN_QUERY_REWRITE
-
-
Constructor Summary
Constructors Constructor Description TermRangeQuery(String field, BytesRef lowerTerm, BytesRef upperTerm, boolean includeLower, boolean includeUpper)
Constructs a query selecting all terms greater/equal thanlowerTerm
but less/equal thanupperTerm
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
BytesRef
getLowerTerm()
Returns the lower value of this range queryprotected TermsEnum
getTermsEnum(Terms terms, AttributeSource atts)
Construct the enumeration to be used, expanding the pattern term.BytesRef
getUpperTerm()
Returns the upper value of this range queryint
hashCode()
boolean
includesLower()
Returnstrue
if the lower endpoint is inclusiveboolean
includesUpper()
Returnstrue
if the upper endpoint is inclusivestatic TermRangeQuery
newStringRange(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
Factory that creates a new TermRangeQuery using Strings for term text.String
toString(String field)
Prints a user-readable version of this query.-
Methods inherited from class org.apache.lucene.search.MultiTermQuery
getField, getRewriteMethod, getTermsEnum, rewrite, setRewriteMethod
-
Methods inherited from class org.apache.lucene.search.Query
clone, createWeight, extractTerms, getBoost, setBoost, toString
-
-
-
-
Constructor Detail
-
TermRangeQuery
public TermRangeQuery(String field, BytesRef lowerTerm, BytesRef upperTerm, boolean includeLower, boolean includeUpper)
Constructs a query selecting all terms greater/equal thanlowerTerm
but less/equal thanupperTerm
.If an endpoint is null, it is said to be "open". Either or both endpoints may be open. Open endpoints may not be exclusive (you can't select all but the first or last term without explicitly specifying the term to exclude.)
- Parameters:
field
- The field that holds both lower and upper terms.lowerTerm
- The term text at the lower end of the rangeupperTerm
- The term text at the upper end of the rangeincludeLower
- If true, thelowerTerm
is included in the range.includeUpper
- If true, theupperTerm
is included in the range.
-
-
Method Detail
-
newStringRange
public static TermRangeQuery newStringRange(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
Factory that creates a new TermRangeQuery using Strings for term text.
-
getLowerTerm
public BytesRef getLowerTerm()
Returns the lower value of this range query
-
getUpperTerm
public BytesRef getUpperTerm()
Returns the upper value of this range query
-
includesLower
public boolean includesLower()
Returnstrue
if the lower endpoint is inclusive
-
includesUpper
public boolean includesUpper()
Returnstrue
if the upper endpoint is inclusive
-
getTermsEnum
protected TermsEnum getTermsEnum(Terms terms, AttributeSource atts) throws IOException
Description copied from class:MultiTermQuery
Construct the enumeration to be used, expanding the pattern term. This method should only be called if the field exists (ie, implementations can assume the field does exist). This method should not return null (should instead returnTermsEnum.EMPTY
if no terms match). The TermsEnum must already be positioned to the first matching term. The givenAttributeSource
is passed by theMultiTermQuery.RewriteMethod
to provide attributes, the rewrite method uses to inform about e.g. maximum competitive boosts. This is currently only used byTopTermsRewrite
- Specified by:
getTermsEnum
in classMultiTermQuery
- Throws:
IOException
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classMultiTermQuery
-
equals
public boolean equals(Object obj)
- Overrides:
equals
in classMultiTermQuery
-
-