Class TermRangeQuery
- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.search.MultiTermQuery
-
- org.apache.lucene.search.TermRangeQuery
-
- All Implemented Interfaces:
Serializable,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
String.compareTo(String), unless aCollatoris provided. It is not intended for numerical ranges; useNumericRangeQueryinstead.This query uses the
MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULTrewrite method.- Since:
- 2.9
- See Also:
- Serialized Form
-
-
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, rewriteMethod, SCORING_BOOLEAN_QUERY_REWRITE
-
-
Constructor Summary
Constructors Constructor Description TermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)Constructs a query selecting all terms greater/equal thanlowerTermbut less/equal thanupperTerm.TermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, Collator collator)Constructs a query selecting all terms greater/equal thanlowerTermbut less/equal thanupperTerm.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)CollatorgetCollator()Returns the collator used to determine range inclusion, if any.protected FilteredTermEnumgetEnum(IndexReader reader)Construct the enumeration to be used, expanding the pattern term.StringgetField()Returns the field name for this queryStringgetLowerTerm()Returns the lower value of this range queryStringgetUpperTerm()Returns the upper value of this range queryinthashCode()booleanincludesLower()Returnstrueif the lower endpoint is inclusivebooleanincludesUpper()Returnstrueif the upper endpoint is inclusiveStringtoString(String field)Prints a user-readable version of this query.-
Methods inherited from class org.apache.lucene.search.MultiTermQuery
clearTotalNumberOfTerms, getRewriteMethod, getTotalNumberOfTerms, incTotalNumberOfTerms, rewrite, setRewriteMethod
-
Methods inherited from class org.apache.lucene.search.Query
clone, combine, createWeight, extractTerms, getBoost, getSimilarity, mergeBooleanQueries, setBoost, toString, weight
-
-
-
-
Constructor Detail
-
TermRangeQuery
public TermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
Constructs a query selecting all terms greater/equal thanlowerTermbut 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, thelowerTermis included in the range.includeUpper- If true, theupperTermis included in the range.
-
TermRangeQuery
public TermRangeQuery(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, Collator collator)
Constructs a query selecting all terms greater/equal thanlowerTermbut 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.)
If
collatoris not null, it will be used to decide whether index terms are within the given range, rather than using the Unicode code point order in which index terms are stored.WARNING: Using this constructor and supplying a non-null value in the
collatorparameter will cause every single index Term in the Field referenced by lowerTerm and/or upperTerm to be examined. Depending on the number of index Terms in this Field, the operation could be very slow.- Parameters:
lowerTerm- The Term text at the lower end of the rangeupperTerm- The Term text at the upper end of the rangeincludeLower- If true, thelowerTermis included in the range.includeUpper- If true, theupperTermis included in the range.collator- The collator to use to collate index Terms, to determine their membership in the range bounded bylowerTermandupperTerm.
-
-
Method Detail
-
getField
public String getField()
Returns the field name for this query
-
getLowerTerm
public String getLowerTerm()
Returns the lower value of this range query
-
getUpperTerm
public String getUpperTerm()
Returns the upper value of this range query
-
includesLower
public boolean includesLower()
Returnstrueif the lower endpoint is inclusive
-
includesUpper
public boolean includesUpper()
Returnstrueif the upper endpoint is inclusive
-
getCollator
public Collator getCollator()
Returns the collator used to determine range inclusion, if any.
-
getEnum
protected FilteredTermEnum getEnum(IndexReader reader) throws IOException
Description copied from class:MultiTermQueryConstruct the enumeration to be used, expanding the pattern term.- Specified by:
getEnumin classMultiTermQuery- Throws:
IOException
-
hashCode
public int hashCode()
- Overrides:
hashCodein classMultiTermQuery
-
equals
public boolean equals(Object obj)
- Overrides:
equalsin classMultiTermQuery
-
-