ankane/searchkick · error · ArgumentError
Use Searchkick.multi_search for hybrid search
Error message
Use Searchkick.multi_search for hybrid search
What it means
Error "Use Searchkick.multi_search for hybrid search" thrown in ankane/searchkick.
Source
Thrown at lib/searchkick/query.rb:966
case f
when :_and, :_or, :or, :_not, :_script
if result.key?(f)
# combine with _and if needed
result[:_and] ||= []
result[:_and] += [{f => v}]
else
result[f] = v
end
else
result[f] = v unless field_keys.include?(f.to_s)
end
end
result
end
def set_knn(payload, knn, per_page, offset)
if term != "*"
raise ArgumentError, "Use Searchkick.multi_search for hybrid search"
end
field = knn[:field]
field_options = searchkick_options.dig(:knn, field.to_sym) || searchkick_options.dig(:knn, field.to_s) || {}
vector = knn[:vector]
distance = knn[:distance] || field_options[:distance]
exact = knn[:exact]
exact = field_options[:distance].nil? || distance != field_options[:distance] if exact.nil?
k = per_page + offset
ef_search = knn[:ef_search]
filter = payload.delete(:query)
if distance.nil?
raise ArgumentError, "distance required"
elsif !exact && distance != field_options[:distance]
raise ArgumentError, "distance must match searchkick options for approximate search"
end
View on GitHub (pinned to 93e901a75b)
When it happens
Trigger: Thrown at lib/searchkick/query.rb:966 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ankane/searchkick@93e901a75b (2026-08-21).
Data as JSON: /api/errors/3c02ec184518c237.
Report an issue: GitHub.