Class TermRangeFilter


public class TermRangeFilter extends MultiTermQueryWrapperFilter<TermRangeQuery>
A Filter that restricts search results to a range of term values in a given field.

This filter matches the documents looking for terms that fall into the supplied range according to Byte.compareTo(Byte), 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.

Since:
2.9
  • Constructor Details

    • TermRangeFilter

      public TermRangeFilter(String fieldName, BytesRef lowerTerm, BytesRef upperTerm, boolean includeLower, boolean includeUpper)
      Parameters:
      fieldName - The field this range applies to
      lowerTerm - The lower bound on this range
      upperTerm - The upper bound on this range
      includeLower - Does this range include the lower bound?
      includeUpper - Does this range include the upper bound?
      Throws:
      IllegalArgumentException - if both terms are null or if lowerTerm is null and includeLower is true (similar for upperTerm and includeUpper)
  • Method Details

    • newStringRange

      public static TermRangeFilter newStringRange(String field, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper)
      Factory that creates a new TermRangeFilter using Strings for term text.
    • Less

      public static TermRangeFilter Less(String fieldName, BytesRef upperTerm)
      Constructs a filter for field fieldName matching less than or equal to upperTerm.
    • More

      public static TermRangeFilter More(String fieldName, BytesRef lowerTerm)
      Constructs a filter for field fieldName matching greater than or equal to lowerTerm.
    • getLowerTerm

      public BytesRef getLowerTerm()
      Returns the lower value of this range filter
    • getUpperTerm

      public BytesRef getUpperTerm()
      Returns the upper value of this range filter
    • includesLower

      public boolean includesLower()
      Returns true if the lower endpoint is inclusive
    • includesUpper

      public boolean includesUpper()
      Returns true if the upper endpoint is inclusive