ankane/searchkick · error · Searchkick::Error
ef_search requires OpenSearch 2.16+
Error message
ef_search requires OpenSearch 2.16+
What it means
Error "ef_search requires OpenSearch 2.16+" thrown in ankane/searchkick.
Source
Thrown at lib/searchkick/query.rb:1025
bool: {
must: [filter, {exists: {field: field}}]
}
},
script: {
source: "knn_score",
lang: "knn",
params: {
field: field,
query_value: vector,
space_type: space_type
}
},
boost: distance == "cosine" && Searchkick.server_below?("2.19.0") ? 0.5 : 1.0
}
}
else
if ef_search && Searchkick.server_below?("2.16.0")
raise Error, "ef_search requires OpenSearch 2.16+"
end
payload[:query] = {
knn: {
field.to_sym => {
vector: vector,
k: k,
filter: filter
}.merge(ef_search ? {method_parameters: {ef_search: ef_search}} : {})
}
}
end
else
if exact
# prevent incorrect distances/results with Elasticsearch 9.0.0-rc1
if !Searchkick.server_below?("9.0.0") && field_options[:distance] == "cosine" && distance != "cosine"
raise ArgumentError, "distance must match searchkick options"
endView on GitHub (pinned to 93e901a75b)
When it happens
Trigger: Thrown at lib/searchkick/query.rb:1025 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/236278d26a5baa94.
Report an issue: GitHub.