Class: Redis::Commands::Search::HybridVsimQuery
- Inherits:
-
Object
- Object
- Redis::Commands::Search::HybridVsimQuery
- Defined in:
- lib/redis/commands/modules/search/hybrid.rb
Overview
The vector-similarity VSIM leg of an FT.HYBRID query.
Chainable setters (+vsim_method_params+, filter, yield_score_as) return self;
#args renders the leg into its argument tokens, beginning with "VSIM".
Instance Attribute Summary collapse
- #vector_data ⇒ String readonly
- #vector_field ⇒ String readonly
Instance Method Summary collapse
-
#args ⇒ Array
The
VSIMleg argument tokens, beginning with "VSIM". -
#filter(flt) ⇒ self
Set a filter applied to the vector leg (+FILTER+).
-
#initialize(vector_field_name:, vector_data:, vsim_search_method: nil, vsim_search_method_params: nil, filter: nil, yield_score_as: nil) ⇒ HybridVsimQuery
constructor
A new instance of HybridVsimQuery.
-
#vsim_method_params(method, **kwargs) ⇒ self
Set the vector search method and its parameters (e.g.
KNN/RANGE). -
#yield_score_as(alias_name) ⇒ self
Expose the vector score under an alias (+YIELD_SCORE_AS+).
Constructor Details
#initialize(vector_field_name:, vector_data:, vsim_search_method: nil, vsim_search_method_params: nil, filter: nil, yield_score_as: nil) ⇒ HybridVsimQuery
Returns a new instance of HybridVsimQuery.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 65 def initialize( vector_field_name:, vector_data:, vsim_search_method: nil, vsim_search_method_params: nil, filter: nil, yield_score_as: nil ) @vector_field = vector_field_name @vector_data = vector_data @vsim_method_params = nil @filter = filter @yield_score_as = yield_score_as if vsim_search_method && vsim_search_method_params vsim_method_params(vsim_search_method, **vsim_search_method_params) end end |
Instance Attribute Details
#vector_data ⇒ String (readonly)
57 58 59 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 57 def vector_data @vector_data end |
#vector_field ⇒ String (readonly)
57 58 59 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 57 def vector_field @vector_field end |
Instance Method Details
#args ⇒ Array
Returns the VSIM leg argument tokens, beginning with "VSIM".
116 117 118 119 120 121 122 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 116 def args result = ["VSIM", @vector_field, @vector_data] result.concat(@vsim_method_params) if @vsim_method_params result.concat(@filter.args) if @filter result << "YIELD_SCORE_AS" << @yield_score_as if @yield_score_as result end |
#filter(flt) ⇒ self
Set a filter applied to the vector leg (+FILTER+).
101 102 103 104 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 101 def filter(flt) @filter = flt self end |
#vsim_method_params(method, **kwargs) ⇒ self
Set the vector search method and its parameters (e.g. KNN / RANGE).
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 86 def vsim_method_params(method, **kwargs) @vsim_method_params = [method.to_s.upcase] if kwargs.any? @vsim_method_params << kwargs.size * 2 kwargs.each do |key, value| @vsim_method_params << key.to_s.upcase << value end end self end |
#yield_score_as(alias_name) ⇒ self
Expose the vector score under an alias (+YIELD_SCORE_AS+).
110 111 112 113 |
# File 'lib/redis/commands/modules/search/hybrid.rb', line 110 def yield_score_as(alias_name) @yield_score_as = alias_name self end |