Commit c55f5fbd5ef186c76beffc987064e4e4b7e578b6
1 parent
a876251e
Exists in
master
and in
18 other branches
More flexibility with _not [skip ci]
Showing
2 changed files
with
6 additions
and
1 deletions
Show diff stats
lib/searchkick/query.rb
@@ -852,7 +852,7 @@ module Searchkick | @@ -852,7 +852,7 @@ module Searchkick | ||
852 | } | 852 | } |
853 | when :regexp # support for regexp queries without using a regexp ruby object | 853 | when :regexp # support for regexp queries without using a regexp ruby object |
854 | filters << {regexp: {field => {value: op_value}}} | 854 | filters << {regexp: {field => {value: op_value}}} |
855 | - when :not # not equal | 855 | + when :not, :_not # not equal |
856 | filters << {bool: {must_not: term_filters(field, op_value)}} | 856 | filters << {bool: {must_not: term_filters(field, op_value)}} |
857 | when :all | 857 | when :all |
858 | op_value.each do |val| | 858 | op_value.each do |val| |
test/where_test.rb
@@ -31,7 +31,9 @@ class WhereTest < Minitest::Test | @@ -31,7 +31,9 @@ class WhereTest < Minitest::Test | ||
31 | assert_search "product", ["Product A"], where: {store_id: 1...2} | 31 | assert_search "product", ["Product A"], where: {store_id: 1...2} |
32 | assert_search "product", ["Product A", "Product B"], where: {store_id: [1, 2]} | 32 | assert_search "product", ["Product A", "Product B"], where: {store_id: [1, 2]} |
33 | assert_search "product", ["Product B", "Product C", "Product D"], where: {store_id: {not: 1}} | 33 | assert_search "product", ["Product B", "Product C", "Product D"], where: {store_id: {not: 1}} |
34 | + assert_search "product", ["Product B", "Product C", "Product D"], where: {store_id: {_not: 1}} | ||
34 | assert_search "product", ["Product C", "Product D"], where: {store_id: {not: [1, 2]}} | 35 | assert_search "product", ["Product C", "Product D"], where: {store_id: {not: [1, 2]}} |
36 | + assert_search "product", ["Product C", "Product D"], where: {store_id: {_not: [1, 2]}} | ||
35 | assert_search "product", ["Product A"], where: {user_ids: {lte: 2, gte: 2}} | 37 | assert_search "product", ["Product A"], where: {user_ids: {lte: 2, gte: 2}} |
36 | 38 | ||
37 | # or | 39 | # or |
@@ -56,12 +58,15 @@ class WhereTest < Minitest::Test | @@ -56,12 +58,15 @@ class WhereTest < Minitest::Test | ||
56 | 58 | ||
57 | # any / nested terms | 59 | # any / nested terms |
58 | assert_search "product", ["Product B", "Product C"], where: {user_ids: {not: [2], in: [1, 3]}} | 60 | assert_search "product", ["Product B", "Product C"], where: {user_ids: {not: [2], in: [1, 3]}} |
61 | + assert_search "product", ["Product B", "Product C"], where: {user_ids: {_not: [2], in: [1, 3]}} | ||
59 | 62 | ||
60 | # not / exists | 63 | # not / exists |
61 | assert_search "product", ["Product D"], where: {user_ids: nil} | 64 | assert_search "product", ["Product D"], where: {user_ids: nil} |
62 | assert_search "product", ["Product A", "Product B", "Product C"], where: {user_ids: {not: nil}} | 65 | assert_search "product", ["Product A", "Product B", "Product C"], where: {user_ids: {not: nil}} |
66 | + assert_search "product", ["Product A", "Product B", "Product C"], where: {user_ids: {_not: nil}} | ||
63 | assert_search "product", ["Product A", "Product C", "Product D"], where: {user_ids: [3, nil]} | 67 | assert_search "product", ["Product A", "Product C", "Product D"], where: {user_ids: [3, nil]} |
64 | assert_search "product", ["Product B"], where: {user_ids: {not: [3, nil]}} | 68 | assert_search "product", ["Product B"], where: {user_ids: {not: [3, nil]}} |
69 | + assert_search "product", ["Product B"], where: {user_ids: {_not: [3, nil]}} | ||
65 | end | 70 | end |
66 | 71 | ||
67 | def test_regexp | 72 | def test_regexp |