diff --git a/test/knn_test.rb b/test/knn_test.rb index 534fbfd3..55afc9e5 100644 --- a/test/knn_test.rb +++ b/test/knn_test.rb @@ -1,6 +1,11 @@ require_relative "test_helper" class KnnTest < Minitest::Test + def setup + skip unless knn_support? + super + end + def test_works store [{name: "A", embedding: [1, 2, 3]}, {name: "B", embedding: [-1, -2, -3]}] assert_order "*", ["A", "B"], knn: {embedding: [1, 2, 3]} diff --git a/test/models/product.rb b/test/models/product.rb index a3fcc230..eae19d3d 100644 --- a/test/models/product.rb +++ b/test/models/product.rb @@ -21,7 +21,7 @@ class Product filterable: [:name, :color, :description], similarity: "BM25", match: ENV["MATCH"] ? ENV["MATCH"].to_sym : nil, - knn: {embedding: {dimensions: 3}} + knn: knn_support? ? {embedding: {dimensions: 3}} : nil attr_accessor :conversions, :user_ids, :aisle, :details diff --git a/test/test_helper.rb b/test/test_helper.rb index 9755d06e..e0af8b88 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -33,6 +33,14 @@ ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT) if ENV["VERBOSE"] +def knn_support? + if Searchkick.opensearch? + !Searchkick.server_below?("2.4.0", true) + else + !Searchkick.server_below?("8.0.0") + end +end + if defined?(Mongoid) require_relative "support/mongoid" else