Commit 597345bdbefbfd83eb6086afdcb327b5f32e05e9
1 parent
b7e9b5bc
Exists in
master
and in
19 other branches
Moved logic out of Searchkick::Index [skip ci]
Showing
2 changed files
with
30 additions
and
29 deletions
Show diff stats
lib/searchkick/index.rb
... | ... | @@ -117,30 +117,6 @@ module Searchkick |
117 | 117 | RecordData.new(self, record).document_type |
118 | 118 | end |
119 | 119 | |
120 | - def reindex_record(record) | |
121 | - if record.destroyed? || !record.should_index? | |
122 | - begin | |
123 | - remove(record) | |
124 | - rescue Elasticsearch::Transport::Transport::Errors::NotFound | |
125 | - # do nothing | |
126 | - end | |
127 | - else | |
128 | - store(record) | |
129 | - end | |
130 | - end | |
131 | - | |
132 | - def reindex_record_async(record) | |
133 | - if Searchkick.callbacks_value.nil? | |
134 | - if defined?(Searchkick::ReindexV2Job) | |
135 | - Searchkick::ReindexV2Job.perform_later(record.class.name, record.id.to_s) | |
136 | - else | |
137 | - raise Searchkick::Error, "Active Job not found" | |
138 | - end | |
139 | - else | |
140 | - reindex_record(record) | |
141 | - end | |
142 | - end | |
143 | - | |
144 | 120 | def similar_record(record, **options) |
145 | 121 | like_text = retrieve(record).to_hash |
146 | 122 | .keep_if { |k, _| !options[:fields] || options[:fields].map(&:to_s).include?(k) } | ... | ... |
lib/searchkick/record_indexer.rb
1 | 1 | module Searchkick |
2 | 2 | class RecordIndexer |
3 | - attr_reader :record | |
3 | + attr_reader :record, :index | |
4 | 4 | |
5 | 5 | def initialize(record) |
6 | 6 | @record = record |
7 | + @index = record.class.searchkick_index | |
7 | 8 | end |
8 | 9 | |
9 | 10 | def reindex(method_name = nil, refresh: false, mode: nil) |
... | ... | @@ -13,8 +14,6 @@ module Searchkick |
13 | 14 | raise ArgumentError, "Invalid value for mode" |
14 | 15 | end |
15 | 16 | |
16 | - index = record.class.searchkick_index | |
17 | - | |
18 | 17 | klass_options = index.options |
19 | 18 | |
20 | 19 | if mode.nil? |
... | ... | @@ -42,16 +41,42 @@ module Searchkick |
42 | 41 | method_name: method_name ? method_name.to_s : nil |
43 | 42 | ) |
44 | 43 | else |
45 | - index.reindex_record_async(record) | |
44 | + reindex_record_async | |
46 | 45 | end |
47 | 46 | else |
48 | 47 | if method_name |
49 | 48 | index.update_record(record, method_name) |
50 | 49 | else |
51 | - index.reindex_record(record) | |
50 | + reindex_record | |
52 | 51 | end |
53 | 52 | index.refresh if refresh |
54 | 53 | end |
55 | 54 | end |
55 | + | |
56 | + private | |
57 | + | |
58 | + def reindex_record | |
59 | + if record.destroyed? || !record.should_index? | |
60 | + begin | |
61 | + index.remove(record) | |
62 | + rescue Elasticsearch::Transport::Transport::Errors::NotFound | |
63 | + # do nothing | |
64 | + end | |
65 | + else | |
66 | + index.store(record) | |
67 | + end | |
68 | + end | |
69 | + | |
70 | + def reindex_record_async | |
71 | + if Searchkick.callbacks_value.nil? | |
72 | + if defined?(Searchkick::ReindexV2Job) | |
73 | + Searchkick::ReindexV2Job.perform_later(record.class.name, record.id.to_s) | |
74 | + else | |
75 | + raise Searchkick::Error, "Active Job not found" | |
76 | + end | |
77 | + else | |
78 | + reindex_record | |
79 | + end | |
80 | + end | |
56 | 81 | end |
57 | 82 | end | ... | ... |