Class FilterQuery.FilterQueryBuilder

java.lang.Object
com.redis.vl.query.FilterQuery.FilterQueryBuilder
Enclosing class:
FilterQuery

public static class FilterQuery.FilterQueryBuilder extends Object
Builder for FilterQuery with defensive copying.
  • Method Details

    • filterExpression

      public FilterQuery.FilterQueryBuilder filterExpression(Filter filterExpression)
      Set the filter expression.
      Parameters:
      filterExpression - The filter to apply
      Returns:
      this builder
    • returnFields

      public FilterQuery.FilterQueryBuilder returnFields(List<String> returnFields)
      Set return fields. Makes a defensive copy.
      Parameters:
      returnFields - List of field names
      Returns:
      this builder
    • numResults

      public FilterQuery.FilterQueryBuilder numResults(int numResults)
      Set the number of results to return.
      Parameters:
      numResults - Maximum number of results
      Returns:
      this builder
    • dialect

      public FilterQuery.FilterQueryBuilder dialect(int dialect)
      Set the query dialect.
      Parameters:
      dialect - RediSearch dialect version
      Returns:
      this builder
    • sortBy

      public FilterQuery.FilterQueryBuilder sortBy(String sortBy)
      Set the field to sort results by (defaults to ascending).

      Python equivalent: sort_by="price"

      Parameters:
      sortBy - Field name to sort by
      Returns:
      this builder
    • sortBy

      public FilterQuery.FilterQueryBuilder sortBy(String field, String direction)
      Set the field to sort results by with explicit direction.

      Python equivalent: sort_by=("price", "DESC")

      Parameters:
      field - Field name to sort by
      direction - Sort direction ("ASC" or "DESC", case-insensitive)
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if direction is invalid
    • sortBy

      public FilterQuery.FilterQueryBuilder sortBy(SortField sortField)
      Set the field to sort results by using SortField.

      Python equivalent: sort_by=("rating", "DESC") or using SortField.desc("rating")

      Parameters:
      sortField - SortField specifying field and direction
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if sortField is null
    • sortBy

      public FilterQuery.FilterQueryBuilder sortBy(List<SortField> sortFields)
      Set the fields to sort results by (supports multiple fields, but only first is used).

      Python equivalent: sort_by=[("price", "DESC"), ("rating", "ASC"), "stock"]

      Note: Redis Search only supports single-field sorting. When multiple fields are provided, only the first field is used and a warning is logged.

      Parameters:
      sortFields - List of SortFields
      Returns:
      this builder
    • sortAscending

      public FilterQuery.FilterQueryBuilder sortAscending(boolean ascending)
      Set whether to sort in ascending or descending order. Python: query.sort_by(field, asc=True/False)
      Parameters:
      ascending - true for ascending, false for descending
      Returns:
      this builder
    • inOrder

      public FilterQuery.FilterQueryBuilder inOrder(boolean inOrder)
      Set whether to require in-order term matching.
      Parameters:
      inOrder - true to require terms in same order as query
      Returns:
      this builder
    • params

      Set query parameters. Makes a defensive copy.
      Parameters:
      params - Parameter map
      Returns:
      this builder
    • skipDecodeFields

      public FilterQuery.FilterQueryBuilder skipDecodeFields(List<String> skipDecodeFields)
      Set fields that should not be decoded from binary format.

      Python equivalent: skip_decode parameter in return_fields() (PR #389)

      Parameters:
      skipDecodeFields - List of field names
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if list contains null values
    • skipDecodeFields

      public FilterQuery.FilterQueryBuilder skipDecodeFields(String... fields)
      Set fields that should not be decoded from binary format (varargs).
      Parameters:
      fields - Field names
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if any field is null
    • build

      public FilterQuery build()
      Build the FilterQuery instance.
      Returns:
      A new FilterQuery with the configured parameters