Commit 34ee92e0427234ad46e1fef59ae1414b032e3d9e
1 parent
a55e01bf
Exists in
relation
Added support for body [skip ci]
Showing
3 changed files
with
17 additions
and
5 deletions
Show diff stats
README.md
... | ... | @@ -1442,10 +1442,8 @@ products = Product.search("milk").body_options(min_score: 1) |
1442 | 1442 | or |
1443 | 1443 | |
1444 | 1444 | ```ruby |
1445 | -products = | |
1446 | - Product.search("apples") do |body| | |
1447 | - body[:min_score] = 1 | |
1448 | - end | |
1445 | +products = Product.search("apples") | |
1446 | +products.body[:min_score] = 1 | |
1449 | 1447 | ``` |
1450 | 1448 | |
1451 | 1449 | ### Elasticsearch Gem | ... | ... |
lib/searchkick/relation.rb
... | ... | @@ -11,7 +11,7 @@ module Searchkick |
11 | 11 | :offset_value, :previous_page, :prev_page, :next_page, :first_page?, :last_page?, |
12 | 12 | :out_of_range?, :hits, :response, :to_a, :first, :highlights, :group_by, :misspellings?, :with_highlights |
13 | 13 | |
14 | - def_delegators :query, :body, :params | |
14 | + def_delegators :query, :params | |
15 | 15 | |
16 | 16 | def initialize(klass, term = "*", **options) |
17 | 17 | unknown_keywords = options.keys - [:aggs, :block, :body, :body_options, :boost, |
... | ... | @@ -298,6 +298,19 @@ module Searchkick |
298 | 298 | self |
299 | 299 | end |
300 | 300 | |
301 | + def body(*args) | |
302 | + if args.empty? | |
303 | + params.body | |
304 | + else | |
305 | + spawn.body!(*args) | |
306 | + end | |
307 | + end | |
308 | + | |
309 | + def body!(value) | |
310 | + options[:body] = value | |
311 | + self | |
312 | + end | |
313 | + | |
301 | 314 | def body_options(value) |
302 | 315 | spawn.body_options!(value) |
303 | 316 | end | ... | ... |
test/index_test.rb
... | ... | @@ -58,6 +58,7 @@ class IndexTest < Minitest::Test |
58 | 58 | def test_body |
59 | 59 | store_names ["Dollar Tree"], Store |
60 | 60 | assert_equal ["Dollar Tree"], Store.search(body: {query: {match: {name: "dollar"}}}, load: false).map(&:name) |
61 | + assert_equal ["Dollar Tree"], Store.search.body(query: {match: {name: "dollar"}}).load(false).map(&:name) | |
61 | 62 | end |
62 | 63 | |
63 | 64 | def test_body_incompatible_options | ... | ... |