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"
          end

View 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.