algoliasearch-rails 1.10.4 → 1.10.6
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.
- checksums.yaml +4 -4
- data/ChangeLog +8 -0
- data/README.md +9 -1
- data/VERSION +1 -1
- data/algoliasearch-rails.gemspec +2 -2
- data/lib/algoliasearch-rails.rb +28 -0
- data/lib/algoliasearch/configuration.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0abd869d8b7021676051417ff8f3a54d64cd6c01
|
4
|
+
data.tar.gz: d84fbe3c59f997e518c27393b3c7b70d315c6c49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3023ccffd38aab0ad8f2bcf657fcdb1bfc027bc1b8fd78bd50184881f8e1cb25e24f318bc30ceb960d2d7421264f4c967385d8f08818749d4aac773f7cff725
|
7
|
+
data.tar.gz: 3286d414ed42da850ff3640c5f15d78296ea1feb4c250404acbe0d26fa0f883066f3bc27e8da292ff8e1f8770619d1a8f4ed1e1f52df41c930348c2a5a9c9602
|
data/ChangeLog
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
|
+
2014-07-10 1.10.6
|
4
|
+
|
5
|
+
* Pass the configuration hash to the underlying ```Algolia.init``` method.
|
6
|
+
|
7
|
+
2014-07-09 1.10.5
|
8
|
+
|
9
|
+
* Safely reindex your data using ```MyModel.reindex``` (index with a temporary index + move), ```MyModel.reindex!``` do it in-place without removing out-dated records
|
10
|
+
|
3
11
|
2014-06-28 1.10.4
|
4
12
|
|
5
13
|
* Ability to disable all indexing tasks (testing purpose)
|
data/README.md
CHANGED
@@ -236,6 +236,8 @@ class Post < ActiveRecord::Base
|
|
236
236
|
end
|
237
237
|
```
|
238
238
|
|
239
|
+
**Notes:** As soon as you use those constraints, ```deleteObjects``` calls will be performed in order to keep the index synced with the DB (The state-less gem doesn't know if the object don't match your constraints anymore or never matched, so we force DELETE operations, even on never-indexed objects).
|
240
|
+
|
239
241
|
You can index a subset of your records using either:
|
240
242
|
|
241
243
|
```ruby
|
@@ -332,7 +334,13 @@ c.remove_from_index!
|
|
332
334
|
c.destroy
|
333
335
|
```
|
334
336
|
|
335
|
-
To reindex all your records, use the <code>reindex
|
337
|
+
To *safely* reindex all your records (index to a temporary index + move the temporary index to the current one atomically), use the <code>reindex</code> class method:
|
338
|
+
|
339
|
+
```ruby
|
340
|
+
Contact.reindex
|
341
|
+
```
|
342
|
+
|
343
|
+
To reindex all your records (in place, without deleting out-dated records), use the <code>reindex!</code> class method:
|
336
344
|
|
337
345
|
```ruby
|
338
346
|
Contact.reindex!
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.10.
|
1
|
+
1.10.6
|
data/algoliasearch-rails.gemspec
CHANGED
@@ -6,11 +6,11 @@
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "algoliasearch-rails"
|
9
|
-
s.version = "1.10.
|
9
|
+
s.version = "1.10.6"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.authors = ["Algolia"]
|
13
|
-
s.date = "2014-
|
13
|
+
s.date = "2014-07-10"
|
14
14
|
s.description = "AlgoliaSearch integration to your favorite ORM"
|
15
15
|
s.email = "contact@algolia.com"
|
16
16
|
s.extra_rdoc_files = [
|
data/lib/algoliasearch-rails.rb
CHANGED
@@ -154,6 +154,7 @@ module AlgoliaSearch
|
|
154
154
|
class <<base
|
155
155
|
alias_method :without_auto_index, :algolia_without_auto_index unless method_defined? :without_auto_index
|
156
156
|
alias_method :reindex!, :algolia_reindex! unless method_defined? :reindex!
|
157
|
+
alias_method :reindex, :algolia_reindex unless method_defined? :reindex
|
157
158
|
alias_method :index_objects, :algolia_index_objects unless method_defined? :index_objects
|
158
159
|
alias_method :index!, :algolia_index! unless method_defined? :index!
|
159
160
|
alias_method :remove_from_index!, :algolia_remove_from_index! unless method_defined? :remove_from_index!
|
@@ -221,6 +222,33 @@ module AlgoliaSearch
|
|
221
222
|
nil
|
222
223
|
end
|
223
224
|
|
225
|
+
# reindex whole database using a extra temporary index + move operation
|
226
|
+
def algolia_reindex(batch_size = 1000, synchronous = false)
|
227
|
+
return if @algolia_without_auto_index_scope
|
228
|
+
algolia_configurations.each do |options, settings|
|
229
|
+
next if algolia_indexing_disabled?(options)
|
230
|
+
next if options[:slave]
|
231
|
+
index_name = algolia_index_name(options)
|
232
|
+
|
233
|
+
tmp_options = options.merge({ :index_name => "#{index_name}.tmp" })
|
234
|
+
tmp_settings = settings.dup
|
235
|
+
tmp_index = algolia_ensure_init(tmp_options, tmp_settings)
|
236
|
+
|
237
|
+
algolia_find_in_batches(batch_size) do |group|
|
238
|
+
if algolia_conditional_index?(tmp_options)
|
239
|
+
# select only indexable objects
|
240
|
+
group = group.select { |o| algolia_indexable?(o, tmp_options) }
|
241
|
+
end
|
242
|
+
objects = group.map { |o| tmp_settings.get_attributes(o).merge 'objectID' => algolia_object_id_of(o, tmp_options) }
|
243
|
+
tmp_index.save_objects(objects)
|
244
|
+
end
|
245
|
+
|
246
|
+
move_task = ::Algolia.move_index(tmp_index.name, index_name)
|
247
|
+
tmp_index.wait_task(move_task["taskID"]) if synchronous == true
|
248
|
+
end
|
249
|
+
nil
|
250
|
+
end
|
251
|
+
|
224
252
|
def algolia_index_objects(objects, synchronous = false)
|
225
253
|
algolia_configurations.each do |options, settings|
|
226
254
|
next if algolia_indexing_disabled?(options)
|
@@ -6,7 +6,7 @@ module AlgoliaSearch
|
|
6
6
|
|
7
7
|
def configuration=(configuration)
|
8
8
|
@@configuration = configuration
|
9
|
-
Algolia.init
|
9
|
+
Algolia.init @@configuration
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: algoliasearch-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algolia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|