diff --git a/lib/searchkick/query.rb b/lib/searchkick/query.rb index 30f2959..1226f83 100644 --- a/lib/searchkick/query.rb +++ b/lib/searchkick/query.rb @@ -967,7 +967,7 @@ module Searchkick regex.gsub!(v, "\\" + v) end regex = regex.gsub(/(? {value: regex}}} + filters << {regexp: {field => {value: regex, flags: "NONE"}}} when :prefix filters << {prefix: {field => {value: op_value}}} when :regexp # support for regexp queries without using a regexp ruby object diff --git a/test/where_test.rb b/test/where_test.rb index a432be8..8294a89 100644 --- a/test/where_test.rb +++ b/test/where_test.rb @@ -166,6 +166,13 @@ class WhereTest < Minitest::Test assert_search "product", ["Product ABC\""], where: {name: {like: "%ABC\""}} end + def test_like_optional_operators + store_names ["Product A&B", "Product B", "Product <3", "Product @Home"] + assert_search "product", ["Product A&B"], where: {name: {like: "%A&B"}} + assert_search "product", ["Product <3"], where: {name: {like: "%<%"}} + assert_search "product", ["Product @Home"], where: {name: {like: "%@Home%"}} + end + # def test_script # store [ # {name: "Product A", store_id: 1}, -- libgit2 0.21.0