Class VectorQuery.Builder

java.lang.Object
com.redis.vl.query.VectorQuery.Builder
Enclosing class:
VectorQuery

public static class VectorQuery.Builder extends Object
Builder for VectorQuery
  • Constructor Details

    • Builder

      public Builder()
      Create a new Builder instance
  • Method Details

    • field

      public VectorQuery.Builder field(String field)
      Set the vector field name
      Parameters:
      field - Field name
      Returns:
      This builder
    • vector

      public VectorQuery.Builder vector(float[] vector)
      Set the query vector
      Parameters:
      vector - Query vector as float array
      Returns:
      This builder
    • vector

      public VectorQuery.Builder vector(double[] vector)
      Set the query vector
      Parameters:
      vector - Query vector as double array
      Returns:
      This builder
    • numResults

      public VectorQuery.Builder numResults(int numResults)
      Set the number of results to return
      Parameters:
      numResults - Number of results
      Returns:
      This builder
    • k

      @Deprecated public VectorQuery.Builder k(int k)
      Deprecated.
      Use numResults() instead
      Set the K value (number of results)
      Parameters:
      k - Number of results
      Returns:
      This builder
    • withK

      @Deprecated public VectorQuery.Builder withK(int k)
      Deprecated.
      Use numResults() instead
      Set the K value (number of results)
      Parameters:
      k - Number of results
      Returns:
      This builder
    • distanceMetric

      public VectorQuery.Builder distanceMetric(VectorField.DistanceMetric distanceMetric)
      Set the distance metric
      Parameters:
      distanceMetric - Distance metric
      Returns:
      This builder
    • withDistanceMetric

      public VectorQuery.Builder withDistanceMetric(VectorField.DistanceMetric metric)
      Set the distance metric (alternative method)
      Parameters:
      metric - Distance metric
      Returns:
      This builder
    • returnDistance

      public VectorQuery.Builder returnDistance(boolean returnDistance)
      Set whether to return distance values
      Parameters:
      returnDistance - True to return distances
      Returns:
      This builder
    • withReturnDistance

      public VectorQuery.Builder withReturnDistance(boolean returnDistance)
      Set whether to return distance values (alternative method)
      Parameters:
      returnDistance - True to return distances
      Returns:
      This builder
    • returnScore

      public VectorQuery.Builder returnScore(boolean returnScore)
      Set whether to return similarity scores
      Parameters:
      returnScore - True to return scores
      Returns:
      This builder
    • withReturnScore

      public VectorQuery.Builder withReturnScore(boolean returnScore)
      Set whether to return similarity scores (alternative method)
      Parameters:
      returnScore - True to return scores
      Returns:
      This builder
    • preFilter

      public VectorQuery.Builder preFilter(String preFilter)
      Set the pre-filter expression
      Parameters:
      preFilter - Pre-filter expression
      Returns:
      This builder
    • withPreFilter

      public VectorQuery.Builder withPreFilter(String filter)
      Set the pre-filter expression (alternative method)
      Parameters:
      filter - Pre-filter expression
      Returns:
      This builder
    • hybridField

      public VectorQuery.Builder hybridField(String hybridField)
      Set the hybrid search field
      Parameters:
      hybridField - Hybrid field name
      Returns:
      This builder
    • hybridQuery

      public VectorQuery.Builder hybridQuery(String hybridQuery)
      Set the hybrid search query
      Parameters:
      hybridQuery - Hybrid query string
      Returns:
      This builder
    • withHybridSearch

      public VectorQuery.Builder withHybridSearch(String field, String query)
      Set hybrid search parameters
      Parameters:
      field - Hybrid field name
      query - Hybrid query string
      Returns:
      This builder
    • efRuntime

      public VectorQuery.Builder efRuntime(Integer efRuntime)
      Set the EF runtime parameter for HNSW
      Parameters:
      efRuntime - EF runtime value
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if efRuntime is not positive
    • withEfRuntime

      public VectorQuery.Builder withEfRuntime(int efRuntime)
      Set the EF runtime parameter for HNSW (alternative method)
      Parameters:
      efRuntime - EF runtime value
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if efRuntime is not positive
    • searchWindowSize

      public VectorQuery.Builder searchWindowSize(Integer searchWindowSize)
      Set the search window size parameter for SVS-VAMANA algorithm.

      Controls the KNN search window size. Must be positive.

      Python PR #439: SVS-VAMANA runtime parameter support

      Parameters:
      searchWindowSize - Search window size (must be positive)
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if searchWindowSize is not positive
    • useSearchHistory

      public VectorQuery.Builder useSearchHistory(String useSearchHistory)
      Set the use search history parameter for SVS-VAMANA algorithm.

      Controls search buffer usage. Valid values: "OFF", "ON", "AUTO"

      Python PR #439: SVS-VAMANA runtime parameter support

      Parameters:
      useSearchHistory - Search history mode (OFF, ON, or AUTO)
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if useSearchHistory is not one of: OFF, ON, AUTO
    • searchBufferCapacity

      public VectorQuery.Builder searchBufferCapacity(Integer searchBufferCapacity)
      Set the search buffer capacity parameter for SVS-VAMANA algorithm.

      Controls compression tuning. Must be positive.

      Python PR #439: SVS-VAMANA runtime parameter support

      Parameters:
      searchBufferCapacity - Search buffer capacity (must be positive)
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if searchBufferCapacity is not positive
    • returnFields

      public VectorQuery.Builder returnFields(String... fields)
      Set the fields to return in results
      Parameters:
      fields - Field names
      Returns:
      This builder
    • returnFields

      public VectorQuery.Builder returnFields(List<String> fields)
      Set the fields to return in results
      Parameters:
      fields - List of field names
      Returns:
      This builder
    • normalizeVectorDistance

      public VectorQuery.Builder normalizeVectorDistance(boolean normalize)
      Set whether to normalize vector distance
      Parameters:
      normalize - True to normalize
      Returns:
      This builder
    • sortBy

      public VectorQuery.Builder sortBy(String sortBy)
      Set the sort field (defaults to ascending).

      Python equivalent: sort_by="price"

      Parameters:
      sortBy - Sort field name
      Returns:
      This builder
    • sortBy

      public VectorQuery.Builder sortBy(String field, String direction)
      Set the sort field 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 VectorQuery.Builder sortBy(SortField sortField)
      Set the sort field 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 VectorQuery.Builder sortBy(List<SortField> sortFields)
      Set the sort fields (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
    • sortDescending

      public VectorQuery.Builder sortDescending(boolean descending)
      Set whether to sort in descending order
      Parameters:
      descending - True for descending
      Returns:
      This builder
    • inOrder

      public VectorQuery.Builder inOrder(boolean inOrder)
      Set whether terms must be in order
      Parameters:
      inOrder - True for in-order matching
      Returns:
      This builder
    • skipDecodeFields

      public VectorQuery.Builder skipDecodeFields(List<String> skipDecodeFields)
      Set fields that should not be decoded from binary format.
      Parameters:
      skipDecodeFields - List of field names
      Returns:
      This builder
      Throws:
      IllegalArgumentException - if list contains null values
    • skipDecodeFields

      public VectorQuery.Builder 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 VectorQuery build()
      Build the VectorQuery
      Returns:
      VectorQuery instance