Class Filter

java.lang.Object
com.redis.vl.query.Filter

public class Filter extends Object
Represents a filter for Redis search
  • Method Details

    • text

      public static Filter text(String field, String value)
      Create a text search filter
      Parameters:
      field - Field name
      value - Search value
      Returns:
      FilterQuery
    • tag

      public static Filter tag(String field, String... values)
      Create a tag filter
      Parameters:
      field - Field name
      values - Tag values
      Returns:
      FilterQuery
    • tagLike

      public static Filter tagLike(String field, String... patterns)
      Create a tag wildcard filter for pattern matching.

      This enables wildcard pattern matching on tag fields using the * character. Unlike the tag(String, String...) method, wildcards are not escaped, allowing patterns with wildcards in any position, such as prefix ("tech*"), suffix ("*tech"), or middle ("*tech*") matches.

      Examples:

      
       Filter.tagLike("category", "tech*");           // Prefix match
       Filter.tagLike("category", "*tech");           // Suffix match
       Filter.tagLike("category", "*tech*");          // Contains match
       Filter.tagLike("category", "tech*", "*soft");  // Multiple patterns
       
      Parameters:
      field - Field name
      patterns - Tag patterns with wildcards (e.g., "tech*", "*tech", "*tech*")
      Returns:
      FilterQuery for wildcard matching
    • numeric

      public static Filter.NumericFilterBuilder numeric(String field)
      Create a numeric filter builder
      Parameters:
      field - Field name
      Returns:
      NumericFilterBuilder
    • geo

      public static Filter.GeoFilterBuilder geo(String field)
      Create a geo filter builder
      Parameters:
      field - Field name
      Returns:
      GeoFilterBuilder
    • wildcard

      public static Filter wildcard(String field, String pattern)
      Create a wildcard filter
      Parameters:
      field - Field name
      pattern - Wildcard pattern
      Returns:
      FilterQuery
    • prefix

      public static Filter prefix(String field, String prefix)
      Create a prefix filter
      Parameters:
      field - Field name
      prefix - Prefix value
      Returns:
      FilterQuery
    • fuzzy

      public static Filter fuzzy(String field, String value)
      Create a fuzzy match filter
      Parameters:
      field - Field name
      value - Fuzzy match value
      Returns:
      FilterQuery
    • exact

      public static Filter exact(String field, String value)
      Create an exact match filter
      Parameters:
      field - Field name
      value - Exact match value
      Returns:
      FilterQuery
    • and

      public static Filter and(Filter... filters)
      Combine filters with AND
      Parameters:
      filters - Filters to combine
      Returns:
      FilterQuery
    • or

      public static Filter or(Filter... filters)
      Combine filters with OR
      Parameters:
      filters - Filters to combine
      Returns:
      FilterQuery
    • not

      public static Filter not(Filter filter)
      Negate a filter
      Parameters:
      filter - Filter to negate
      Returns:
      FilterQuery
    • custom

      public static Filter custom(String expression)
      Create a custom filter expression
      Parameters:
      expression - Custom expression
      Returns:
      FilterQuery
    • tagNot

      public static Filter tagNot(String field, String... values)
      Create a negated tag filter (tag != value)
      Parameters:
      field - Field name
      values - Tag values to exclude
      Returns:
      FilterQuery
    • textNot

      public static Filter textNot(String field, String value)
      Create a negated text filter (text != value)
      Parameters:
      field - Field name
      value - Text value to exclude
      Returns:
      FilterQuery
    • conditional

      public static Filter conditional(String field, String pattern)
      Create a conditional text filter (value1|value2|...)
      Parameters:
      field - Field name
      pattern - Conditional pattern (e.g., "engineer|doctor")
      Returns:
      FilterQuery
    • timestamp

      public static Filter.TimestampFilterBuilder timestamp(String field)
      Create a timestamp filter builder
      Parameters:
      field - Field name
      Returns:
      TimestampFilterBuilder
    • build

      public String build()
      Build the filter query string
      Returns:
      Query string