public class TermRangeFilter extends MultiTermQueryWrapperFilter<TermRangeQuery>
This filter matches the documents looking for terms that fall into the
supplied range according to String.compareTo(String)
, unless a Collator
is provided. It is not intended
for numerical ranges; use NumericRangeFilter
instead.
If you construct a large number of range filters with different ranges but on the
same field, FieldCacheRangeFilter
may have significantly better performance.
query
Constructor and Description |
---|
TermRangeFilter(String fieldName,
String lowerTerm,
String upperTerm,
boolean includeLower,
boolean includeUpper) |
TermRangeFilter(String fieldName,
String lowerTerm,
String upperTerm,
boolean includeLower,
boolean includeUpper,
Collator collator)
WARNING: Using this constructor and supplying a non-null
value in the
collator parameter will cause every single
index Term in the Field referenced by lowerTerm and/or upperTerm to be
examined. |
Modifier and Type | Method and Description |
---|---|
Collator |
getCollator()
Returns the collator used to determine range inclusion, if any.
|
String |
getField()
Returns the field name for this filter
|
String |
getLowerTerm()
Returns the lower value of this range filter
|
String |
getUpperTerm()
Returns the upper value of this range filter
|
boolean |
includesLower()
Returns
true if the lower endpoint is inclusive |
boolean |
includesUpper()
Returns
true if the upper endpoint is inclusive |
static TermRangeFilter |
Less(String fieldName,
String upperTerm)
Constructs a filter for field
fieldName matching
less than or equal to upperTerm . |
static TermRangeFilter |
More(String fieldName,
String lowerTerm)
Constructs a filter for field
fieldName matching
greater than or equal to lowerTerm . |
clearTotalNumberOfTerms, equals, getDocIdSet, getTotalNumberOfTerms, hashCode, toString
public TermRangeFilter(String fieldName, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
fieldName
- The field this range applies tolowerTerm
- The lower bound on this rangeupperTerm
- The upper bound on this rangeincludeLower
- Does this range include the lower bound?includeUpper
- Does this range include the upper bound?IllegalArgumentException
- if both terms are null or if
lowerTerm is null and includeLower is true (similar for upperTerm
and includeUpper)public TermRangeFilter(String fieldName, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, Collator collator)
collator
parameter 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.lowerTerm
- The lower bound on this rangeupperTerm
- The upper bound on this rangeincludeLower
- Does this range include the lower bound?includeUpper
- Does this range include the upper bound?collator
- The collator to use when determining range inclusion; set
to null to use Unicode code point ordering instead of collation.IllegalArgumentException
- if both terms are null or if
lowerTerm is null and includeLower is true (similar for upperTerm
and includeUpper)public static TermRangeFilter Less(String fieldName, String upperTerm)
fieldName
matching
less than or equal to upperTerm
.public static TermRangeFilter More(String fieldName, String lowerTerm)
fieldName
matching
greater than or equal to lowerTerm
.public String getField()
public String getLowerTerm()
public String getUpperTerm()
public boolean includesLower()
true
if the lower endpoint is inclusivepublic boolean includesUpper()
true
if the upper endpoint is inclusivepublic Collator getCollator()