diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index fe4fedd..4b9daa6 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -531,6 +531,8 @@ module Searchkick end elsif value.nil? {missing: {"field" => field, existence: true, null_value: true}} + elsif value.is_a?(Regexp) + {regexp: {field => {value: value.source}}} else {term: {field => value}} end diff --git a/test/sql_test.rb b/test/sql_test.rb index c98a22c..f7bf735 100644 --- a/test/sql_test.rb +++ b/test/sql_test.rb @@ -93,6 +93,11 @@ class TestSql < Minitest::Test assert_search "product", ["Product B"], where: {user_ids: {not: [3, nil]}} end + def test_regexp + store_names ["Product A"] + assert_search "*", ["Product A"], where: {name: /Pro.+/} + end + def test_where_string store [ {name: "Product A", color: "RED"} -- libgit2 0.21.0