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,30 +117,6 @@ module Searchkick | ||
117 | RecordData.new(self, record).document_type | 117 | RecordData.new(self, record).document_type |
118 | end | 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 | def similar_record(record, **options) | 120 | def similar_record(record, **options) |
145 | like_text = retrieve(record).to_hash | 121 | like_text = retrieve(record).to_hash |
146 | .keep_if { |k, _| !options[:fields] || options[:fields].map(&:to_s).include?(k) } | 122 | .keep_if { |k, _| !options[:fields] || options[:fields].map(&:to_s).include?(k) } |
lib/searchkick/record_indexer.rb
1 | module Searchkick | 1 | module Searchkick |
2 | class RecordIndexer | 2 | class RecordIndexer |
3 | - attr_reader :record | 3 | + attr_reader :record, :index |
4 | 4 | ||
5 | def initialize(record) | 5 | def initialize(record) |
6 | @record = record | 6 | @record = record |
7 | + @index = record.class.searchkick_index | ||
7 | end | 8 | end |
8 | 9 | ||
9 | def reindex(method_name = nil, refresh: false, mode: nil) | 10 | def reindex(method_name = nil, refresh: false, mode: nil) |
@@ -13,8 +14,6 @@ module Searchkick | @@ -13,8 +14,6 @@ module Searchkick | ||
13 | raise ArgumentError, "Invalid value for mode" | 14 | raise ArgumentError, "Invalid value for mode" |
14 | end | 15 | end |
15 | 16 | ||
16 | - index = record.class.searchkick_index | ||
17 | - | ||
18 | klass_options = index.options | 17 | klass_options = index.options |
19 | 18 | ||
20 | if mode.nil? | 19 | if mode.nil? |
@@ -42,16 +41,42 @@ module Searchkick | @@ -42,16 +41,42 @@ module Searchkick | ||
42 | method_name: method_name ? method_name.to_s : nil | 41 | method_name: method_name ? method_name.to_s : nil |
43 | ) | 42 | ) |
44 | else | 43 | else |
45 | - index.reindex_record_async(record) | 44 | + reindex_record_async |
46 | end | 45 | end |
47 | else | 46 | else |
48 | if method_name | 47 | if method_name |
49 | index.update_record(record, method_name) | 48 | index.update_record(record, method_name) |
50 | else | 49 | else |
51 | - index.reindex_record(record) | 50 | + reindex_record |
52 | end | 51 | end |
53 | index.refresh if refresh | 52 | index.refresh if refresh |
54 | end | 53 | end |
55 | end | 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 | end | 81 | end |
57 | end | 82 | end |