index-tanked 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/index-tanked/active_record_defaults/class_companion.rb +2 -1
- data/lib/index-tanked/active_record_defaults/class_methods.rb +1 -1
- data/lib/index-tanked/active_record_defaults/search_result.rb +12 -2
- data/lib/index-tanked/class_companion.rb +2 -1
- data/lib/index-tanked/configuration.rb +2 -1
- data/lib/index-tanked/search_result.rb +1 -0
- data/lib/index-tanked/version.rb +1 -1
- metadata +3 -3
@@ -17,7 +17,7 @@ module IndexTanked
|
|
17
17
|
find_in_batches(options) do |instances|
|
18
18
|
documents = instances.map { |instance| instance.index_tanked.document_for_batch_addition }
|
19
19
|
count += documents.size
|
20
|
-
index_tanked.retry_on_error do
|
20
|
+
index_tanked.retry_on_error(:times => 5, :delay_multiplier => 2) do
|
21
21
|
index_tanked.index.batch_insert(documents)
|
22
22
|
end
|
23
23
|
end
|
@@ -2,7 +2,7 @@ module IndexTanked
|
|
2
2
|
module ActiveRecordDefaults
|
3
3
|
class SearchResult < SearchResult
|
4
4
|
|
5
|
-
attr_reader :model
|
5
|
+
attr_reader :model, :missing_ids
|
6
6
|
|
7
7
|
def initialize(query, index, model, options={})
|
8
8
|
super(query, index, options)
|
@@ -14,7 +14,17 @@ module IndexTanked
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def records(options={})
|
17
|
-
@model
|
17
|
+
base = @model
|
18
|
+
base = base.scoped(:conditions => {:id => ids})
|
19
|
+
records_found = base.all(options)
|
20
|
+
@missing_ids = ids - records_found.map(&:id)
|
21
|
+
begin
|
22
|
+
if Configuration.missing_activerecord_ids_handler
|
23
|
+
Configuration.missing_activerecord_ids_handler.call(@model, @missing_ids)
|
24
|
+
end
|
25
|
+
ensure
|
26
|
+
return records_found
|
27
|
+
end
|
18
28
|
end
|
19
29
|
|
20
30
|
def paginate(options={})
|
@@ -51,7 +51,8 @@ module IndexTanked
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def add_fields_to_query(query, options={})
|
54
|
-
|
54
|
+
return nil if query.blank? && options[:fields].blank?
|
55
|
+
[query, options[:fields] && options[:fields].to_a.join(":")].compact.join(" ").strip
|
55
56
|
end
|
56
57
|
|
57
58
|
end
|
@@ -3,7 +3,8 @@ module IndexTanked
|
|
3
3
|
|
4
4
|
class << self
|
5
5
|
attr_accessor :url, :index, :search_availability, :index_availability,
|
6
|
-
:add_to_index_fallback, :delete_from_index_fallback, :timeout
|
6
|
+
:add_to_index_fallback, :delete_from_index_fallback, :timeout,
|
7
|
+
:missing_activerecord_ids_handler
|
7
8
|
|
8
9
|
def search_available?
|
9
10
|
if search_availability.is_a? Proc
|
@@ -47,6 +47,7 @@ module IndexTanked
|
|
47
47
|
begin
|
48
48
|
raise SearchingDisabledError, "index tank search is disabled in configuration" unless IndexTanked::Configuration.search_available?
|
49
49
|
raise IndexTanked::SearchError, "No or invalid index has been provided" unless @index.is_a? IndexTank::Index
|
50
|
+
raise IndexTanked::SearchError, "No query provided" if @query.nil?
|
50
51
|
@raw_result ||= @index.search(@query, @options.merge(:start => pager.offset, :len => pager.per_page))
|
51
52
|
rescue StandardError => e
|
52
53
|
raise if e.is_a? IndexTankedError
|
data/lib/index-tanked/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: index-tanked
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 8
|
10
|
+
version: 0.1.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Adam Kittelson
|