algoliasearch-rails 1.17.0 → 1.17.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8cb64784062fdd3807e7188dee376b0a885e96c1
4
- data.tar.gz: c96b2d0c53e20bcfe60ffe54a91a2ab5337e2c9f
3
+ metadata.gz: 0bb0ed3c6e61faa93d87f73b3486759e93f6d77b
4
+ data.tar.gz: 80bacfec7eb024e61a72196dde014d0cfdecb45d
5
5
  SHA512:
6
- metadata.gz: d23d7614758097f7b4d564346df34d0ada721b06762dd602389b63836fde982df35b2da6e6bfaa710674f2389e56813b5fa9d498de015c118079d99eba2b33a1
7
- data.tar.gz: 0eebeb346a1b02a173edd743489e9414dba113b6c3ee4010e634b96aa207164c0adbe582b1eb647a173d8b1905360f5e9099db00993a65d724ffd119a4c5dee8
6
+ metadata.gz: 803713e7a76f93c14309150aafef6ad66703d1e200ce887234914ea1301841e4225e0ecd001658efe8a3061d9c0857aa208310bfd04ce73267cabf2a35019c88
7
+ data.tar.gz: ff9f70b0815494a7847a36a02d1987d18bab009522dc3c86250134412d106f6cee44d7c416a20fed40594fd71b674e009c7001b1d3b7871a82943d045ead4230
data/ChangeLog CHANGED
@@ -1,5 +1,9 @@
1
1
  CHANGELOG
2
2
 
3
+ 2017-01-05 1.17.1
4
+
5
+ * Add missing `disablePrefixOnAttributes` and `disableTypoToleranceOnAttributes` attributes (#193)
6
+
3
7
  2017-01-05 1.17.0
4
8
 
5
9
  * Do not enqueue indexing operations if the indexing is disabled
data/README.md CHANGED
@@ -9,6 +9,9 @@ You might be interested in the sample Ruby on Rails application providing a `aut
9
9
  [![Build Status](https://travis-ci.org/algolia/algoliasearch-rails.svg?branch=master)](https://travis-ci.org/algolia/algoliasearch-rails) [![Gem Version](https://badge.fury.io/rb/algoliasearch-rails.svg)](http://badge.fury.io/rb/algoliasearch-rails) [![Code Climate](https://codeclimate.com/github/algolia/algoliasearch-rails.svg)](https://codeclimate.com/github/algolia/algoliasearch-rails) ![ActiveRecord](https://img.shields.io/badge/ActiveRecord-yes-blue.svg?style=flat-square) ![Mongoid](https://img.shields.io/badge/Mongoid-yes-blue.svg?style=flat-square) ![Sequel](https://img.shields.io/badge/Sequel-yes-blue.svg?style=flat-square)
10
10
 
11
11
 
12
+ **Note:** An easier-to-read version of this documentation is available on
13
+ [Algolia's website](https://www.algolia.com/doc/api-client/rails/).
14
+
12
15
  # Table of Contents
13
16
 
14
17
 
@@ -16,56 +19,51 @@ You might be interested in the sample Ruby on Rails application providing a `aut
16
19
 
17
20
  1. [Install](#install)
18
21
  1. [Configuration](#configuration)
22
+ 1. [Timeouts](#timeouts)
23
+ 1. [Notes](#notes)
19
24
 
20
- **Quick Start**
25
+ **Usage**
21
26
 
22
- 1. [Schema](#schema)
27
+ 1. [Index Schema](#index-schema)
23
28
  1. [Relevancy](#relevancy)
24
29
  1. [Indexing](#indexing)
25
30
  1. [Frontend Search (realtime experience)](#frontend-search-realtime-experience)
26
31
  1. [Backend Search](#backend-search)
27
32
  1. [Backend Pagination](#backend-pagination)
28
- 1. [Notes](#notes)
33
+ 1. [Tags](#tags)
34
+ 1. [Faceting](#faceting)
35
+ 1. [Faceted search](#faceted-search)
36
+ 1. [Group by](#group-by)
37
+ 1. [Geo-Search](#geo-search)
29
38
 
30
39
  **Options**
31
40
 
32
- 1. [Auto-indexing & asynchronism](#auto-indexing--asynchronism)
33
- 1. [Exceptions](#exceptions)
41
+ 1. [Auto-indexing & asynchronism](#auto-indexing--asynchronism)
34
42
  1. [Custom index name](#custom-index-name)
35
- 1. [Per-environment indexes](#per-environment-indexes)
43
+ 1. [Per-environment indices](#per-environment-indices)
36
44
  1. [Custom attribute definition](#custom-attribute-definition)
37
45
  1. [Nested objects/relations](#nested-objectsrelations)
38
46
  1. [Custom `objectID`](#custom-objectid)
39
47
  1. [Restrict indexing to a subset of your data](#restrict-indexing-to-a-subset-of-your-data)
40
48
  1. [Sanitizer](#sanitizer)
41
49
  1. [UTF-8 Encoding](#utf-8-encoding)
50
+ 1. [Exceptions](#exceptions)
42
51
  1. [Configuration example](#configuration-example)
43
52
 
44
- **Indexing**
53
+ **Indices**
45
54
 
46
55
  1. [Manual indexing](#manual-indexing)
47
56
  1. [Manual removal](#manual-removal)
48
57
  1. [Reindexing](#reindexing)
49
58
  1. [Clearing an index](#clearing-an-index)
50
59
  1. [Using the underlying index](#using-the-underlying-index)
51
-
52
- **Indexes**
53
-
54
60
  1. [Primary/replica](#primaryreplica)
55
61
  1. [Share a single index](#share-a-single-index)
56
- 1. [Target multiple indexes](#target-multiple-indexes)
62
+ 1. [Target multiple indices](#target-multiple-indices)
57
63
 
58
- **Features**
64
+ **Testing**
59
65
 
60
- 1. [Tags](#tags)
61
- 1. [Search](#search)
62
- 1. [Faceting](#faceting)
63
- 1. [Facet search](#facet-search)
64
- 1. [Group by](#group-by)
65
- 1. [Geo-Search](#geo-search)
66
- 1. [Caveats](#caveats)
67
- 1. [Timeouts](#timeouts)
68
- 1. [Note on testing](#note-on-testing)
66
+ 1. [Notes](#notes)
69
67
 
70
68
 
71
69
  # Guides & Tutorials
@@ -118,12 +116,40 @@ AlgoliaSearch.configuration = { application_id: 'YourApplicationID', api_key: 'Y
118
116
 
119
117
  The gem is compatible with [ActiveRecord](https://github.com/rails/rails/tree/master/activerecord), [Mongoid](https://github.com/mongoid/mongoid) and [Sequel](https://github.com/jeremyevans/sequel).
120
118
 
119
+ ## Timeouts
121
120
 
122
- # Quick Start
121
+ You can configure a various timeout thresholds by setting the following options at initialization time:
123
122
 
123
+ ```ruby
124
+ AlgoliaSearch.configuration = {
125
+ application_id: 'YourApplicationID',
126
+ api_key: 'YourAPIKey'
127
+ connect_timeout: 2,
128
+ receive_timeout: 30,
129
+ send_timeout: 30,
130
+ batch_timeout: 120,
131
+ search_timeout: 5
132
+ }
133
+ ```
124
134
 
135
+ ## Notes
136
+
137
+ This gem makes intensive use of Rails' callbacks to trigger the indexing tasks. If you're using methods bypassing `after_validation`, `before_save` or `after_commit` callbacks, it will not index your changes. For example: `update_attribute` doesn't perform validations checks, to perform validations when updating use `update_attributes`.
125
138
 
126
- ## Schema
139
+ All methods injected by the `AlgoliaSearch` module are prefixed by `algolia_` and aliased to the associated short names if they aren't already defined.
140
+
141
+ ```ruby
142
+ Contact.algolia_reindex! # <=> Contact.reindex!
143
+
144
+ Contact.algolia_search("jon doe") # <=> Contact.search("jon doe")
145
+ ```
146
+
147
+
148
+ # Usage
149
+
150
+
151
+
152
+ ## Index Schema
127
153
 
128
154
  The following code will create a <code>Contact</code> index and add search capabilities to your <code>Contact</code> model:
129
155
 
@@ -240,16 +266,51 @@ index.search('something', { hitsPerPage: 10, page: 0 })
240
266
 
241
267
  ## Backend Search
242
268
 
243
- If you want to search from your backend you can use the `raw_search` method. It retrieves the raw JSON answer from the API:
269
+ ***Notes:*** We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-javascript) to perform queries directly from the end-user browser without going through your server.
270
+
271
+ A search returns ORM-compliant objects reloading them from your database. We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-javascript) to perform queries to decrease the overall latency and offload your servers.
272
+
273
+ ```ruby
274
+ hits = Contact.search("jon doe")
275
+ p hits
276
+ p hits.raw_answer # to get the original JSON raw answer
277
+ ```
278
+
279
+ A `highlight_result` attribute is added to each ORM object:
244
280
 
245
281
  ```ruby
246
- p Contact.raw_search("jon doe")
282
+ hits[0].highlight_result['first_name']['value']
247
283
  ```
248
284
 
249
- You could also use `search` but it's not recommended. This method will fetch the matching `objectIDs` from the API and perform a database query to retrieve an array of matching models:
285
+ If you want to retrieve the raw JSON answer from the API, without re-loading the objects from the database, you can use:
250
286
 
251
287
  ```ruby
252
- p Contact.search("jon doe") # we recommend to use `raw_search` to avoid the database lookup
288
+ json_answer = Contact.raw_search("jon doe")
289
+ p json_answer
290
+ p json_answer['hits']
291
+ p json_answer['facets']
292
+ ```
293
+
294
+ Search parameters can be specified either through the index's [settings](https://github.com/algolia/algoliasearch-client-ruby#index-settings-parameters) statically in your model or dynamically at search time specifying [search parameters](https://github.com/algolia/algoliasearch-client-ruby#search) as second argument of the `search` method:
295
+
296
+ ```ruby
297
+ class Contact < ActiveRecord::Base
298
+ include AlgoliaSearch
299
+
300
+ algoliasearch do
301
+ attribute :first_name, :last_name, :email
302
+
303
+ # default search parameters stored in the index settings
304
+ minWordSizeForApprox1 4
305
+ minWordSizeForApprox2 8
306
+ hitsPerPage 42
307
+ end
308
+ end
309
+ ```
310
+
311
+ ```ruby
312
+ # dynamical search parameters
313
+ p Contact.raw_search("jon doe", { :hitsPerPage => 5, :page => 2 })
253
314
  ```
254
315
 
255
316
  ## Backend Pagination
@@ -276,16 +337,120 @@ Then, as soon as you use the `search` method, the returning results will be a pa
276
337
  <%= paginate @results %>
277
338
  ```
278
339
 
279
- ## Notes
340
+ ## Tags
280
341
 
281
- All methods injected by the `AlgoliaSearch` include are prefixed by `algolia_` and aliased to the associated short names if they aren't already defined.
342
+ Use the <code>tags</code> method to add tags to your record:
282
343
 
283
344
  ```ruby
284
- Contact.algolia_reindex! # <=> Contact.reindex!
345
+ class Contact < ActiveRecord::Base
346
+ include AlgoliaSearch
285
347
 
286
- Contact.algolia_search("jon doe") # <=> Contact.search("jon doe")
348
+ algoliasearch do
349
+ tags ['trusted']
350
+ end
351
+ end
287
352
  ```
288
353
 
354
+ or using dynamical values:
355
+
356
+ ```ruby
357
+ class Contact < ActiveRecord::Base
358
+ include AlgoliaSearch
359
+
360
+ algoliasearch do
361
+ tags do
362
+ [first_name.blank? || last_name.blank? ? 'partial' : 'full', has_valid_email? ? 'valid_email' : 'invalid_email']
363
+ end
364
+ end
365
+ end
366
+ ```
367
+
368
+ At query time, specify <code>{ tagFilters: 'tagvalue' }</code> or <code>{ tagFilters: ['tagvalue1', 'tagvalue2'] }</code> as search parameters to restrict the result set to specific tags.
369
+
370
+ ## Faceting
371
+
372
+ Facets can be retrieved calling the extra `facets` method of the search answer.
373
+
374
+ ```ruby
375
+ class Contact < ActiveRecord::Base
376
+ include AlgoliaSearch
377
+
378
+ algoliasearch do
379
+ # [...]
380
+
381
+ # specify the list of attributes available for faceting
382
+ attributesForFaceting [:company, :zip_code]
383
+ end
384
+ end
385
+ ```
386
+
387
+ ```ruby
388
+ hits = Contact.search("jon doe", { :facets => '*' })
389
+ p hits # ORM-compliant array of objects
390
+ p hits.facets # extra method added to retrieve facets
391
+ p hits.facets['company'] # facet values+count of facet 'company'
392
+ p hits.facets['zip_code'] # facet values+count of facet 'zip_code'
393
+ ```
394
+
395
+ ```ruby
396
+ raw_json = Contact.raw_search("jon doe", { :facets => '*' })
397
+ p raw_json['facets']
398
+ ```
399
+
400
+ ## Faceted search
401
+
402
+ You can also search for facet values.
403
+
404
+ ```ruby
405
+ Product.search_for_facet_values('category', 'Headphones') # Array of {value, highlighted, count}
406
+ ```
407
+
408
+ This method can also take any parameter a query can take.
409
+ This will adjust the search to only hits which would have matched the query.
410
+
411
+ ```ruby
412
+ # Only sends back the categories containing red Apple products (and only counts those)
413
+ Product.search_for_facet_values('category', 'phone', {
414
+ query: 'red',
415
+ filters: 'brand:Apple'
416
+ }) # Array of phone categories linked to red Apple products
417
+ ```
418
+
419
+ ## Group by
420
+
421
+ More info on distinct for grouping can be found
422
+ [here](https://www.algolia.com/doc/guides/search/distinct#distinct-for-grouping).
423
+
424
+ ```ruby
425
+ class Contact < ActiveRecord::Base
426
+ include AlgoliaSearch
427
+
428
+ algoliasearch do
429
+ # [...]
430
+
431
+ # specify the attribute to be used for distinguishing the records
432
+ # in this case the records will be grouped by company
433
+ attributeForDistinct "company"
434
+ end
435
+ end
436
+ ```
437
+
438
+ ## Geo-Search
439
+
440
+ Use the <code>geoloc</code> method to localize your record:
441
+
442
+ ```ruby
443
+ class Contact < ActiveRecord::Base
444
+ include AlgoliaSearch
445
+
446
+ algoliasearch do
447
+ geoloc :lat_attr, :lng_attr
448
+ end
449
+ end
450
+ ```
451
+
452
+ At query time, specify <code>{ aroundLatLng: "37.33, -121.89", aroundRadius: 50000 }</code> as search parameters to restrict the result set to 50KM around San Jose.
453
+
289
454
 
290
455
  # Options
291
456
 
@@ -419,21 +584,6 @@ class Contact < ActiveRecord::Base
419
584
  end
420
585
  ```
421
586
 
422
- ## Exceptions
423
-
424
- You can disable exceptions that could be raised while trying to reach Algolia's API by using the `raise_on_failure` option:
425
-
426
- ```ruby
427
- class Contact < ActiveRecord::Base
428
- include AlgoliaSearch
429
-
430
- # only raise exceptions in development env
431
- algoliasearch raise_on_failure: Rails.env.development? do
432
- attribute :first_name, :last_name, :email
433
- end
434
- end
435
- ```
436
-
437
587
  ## Custom index name
438
588
 
439
589
  By default, the index name will be the class name, e.g. "Contact". You can customize the index name by using the `index_name` option:
@@ -448,7 +598,7 @@ class Contact < ActiveRecord::Base
448
598
  end
449
599
  ```
450
600
 
451
- ## Per-environment indexes
601
+ ## Per-environment indices
452
602
 
453
603
  You can suffix the index name with the current Rails environment using the following option:
454
604
 
@@ -636,6 +786,21 @@ end
636
786
 
637
787
  ***Notes:*** This option is not compatible with Ruby 1.8
638
788
 
789
+ ## Exceptions
790
+
791
+ You can disable exceptions that could be raised while trying to reach Algolia's API by using the `raise_on_failure` option:
792
+
793
+ ```ruby
794
+ class Contact < ActiveRecord::Base
795
+ include AlgoliaSearch
796
+
797
+ # only raise exceptions in development env
798
+ algoliasearch raise_on_failure: Rails.env.development? do
799
+ attribute :first_name, :last_name, :email
800
+ end
801
+ end
802
+ ```
803
+
639
804
  ## Configuration example
640
805
 
641
806
  Here is a real-word configuration example (from [HN Search](https://github.com/algolia/hn-search)):
@@ -694,7 +859,7 @@ end
694
859
  ```
695
860
 
696
861
 
697
- # Indexing
862
+ # Indices
698
863
 
699
864
 
700
865
 
@@ -722,7 +887,7 @@ The gem provides 2 ways to reindex all your objects:
722
887
 
723
888
  ### Atomical reindexing
724
889
 
725
- To reindex all your records (taking into account the deleted objects), the `reindex` class method indexes all your objects to a temporary index called `<INDEX_NAME>.tmp` and moves the temporary index to the final one once everything is indexed (atomically). This is the safest way to reindex all your content.
890
+ To reindex all your records (taking into account the deleted objects), the `reindex` class method indices all your objects to a temporary index called `<INDEX_NAME>.tmp` and moves the temporary index to the final one once everything is indexed (atomically). This is the safest way to reindex all your content.
726
891
 
727
892
  ```ruby
728
893
  Contact.reindex
@@ -755,10 +920,6 @@ index = Contact.index
755
920
  # index.get_settings, index.partial_update_object, ...
756
921
  ```
757
922
 
758
-
759
- # Indexes
760
-
761
-
762
923
  ## Primary/replica
763
924
 
764
925
  You can define replica indices using the <code>add_replica</code> method:
@@ -832,9 +993,9 @@ end
832
993
 
833
994
  ***Notes:*** If you target a single index from several models, you must never use `MyModel.reindex` and only use `MyModel.reindex!`. The `reindex` method uses a temporary index to perform an atomic reindexing: if you use it, the resulting index will only contain records for the current model because it will not reindex the others.
834
995
 
835
- ## Target multiple indexes
996
+ ## Target multiple indices
836
997
 
837
- You can index a record in several indexes using the <code>add_index</code> method:
998
+ You can index a record in several indices using the <code>add_index</code> method:
838
999
 
839
1000
  ```ruby
840
1001
  class Book < ActiveRecord::Base
@@ -876,194 +1037,11 @@ Book.search 'foo bar', index: 'Book_by_editor'
876
1037
  ```
877
1038
 
878
1039
 
879
- # Features
880
-
881
-
882
-
883
- ## Tags
884
-
885
- Use the <code>tags</code> method to add tags to your record:
886
-
887
- ```ruby
888
- class Contact < ActiveRecord::Base
889
- include AlgoliaSearch
890
-
891
- algoliasearch do
892
- tags ['trusted']
893
- end
894
- end
895
- ```
896
-
897
- or using dynamical values:
898
-
899
- ```ruby
900
- class Contact < ActiveRecord::Base
901
- include AlgoliaSearch
902
-
903
- algoliasearch do
904
- tags do
905
- [first_name.blank? || last_name.blank? ? 'partial' : 'full', has_valid_email? ? 'valid_email' : 'invalid_email']
906
- end
907
- end
908
- end
909
- ```
910
-
911
- At query time, specify <code>{ tagFilters: 'tagvalue' }</code> or <code>{ tagFilters: ['tagvalue1', 'tagvalue2'] }</code> as search parameters to restrict the result set to specific tags.
912
-
913
- ## Search
914
-
915
- ***Notes:*** We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-javascript) to perform queries directly from the end-user browser without going through your server.
916
-
917
- A search returns ORM-compliant objects reloading them from your database. We recommend the usage of our [JavaScript API Client](https://github.com/algolia/algoliasearch-client-javascript) to perform queries to decrease the overall latency and offload your servers.
918
-
919
- ```ruby
920
- hits = Contact.search("jon doe")
921
- p hits
922
- p hits.raw_answer # to get the original JSON raw answer
923
- ```
924
-
925
- A `highlight_result` attribute is added to each ORM object:
1040
+ # Testing
926
1041
 
927
- ```ruby
928
- hits[0].highlight_result['first_name']['value']
929
- ```
930
1042
 
931
- If you want to retrieve the raw JSON answer from the API, without re-loading the objects from the database, you can use:
932
1043
 
933
- ```ruby
934
- json_answer = Contact.raw_search("jon doe")
935
- p json_answer
936
- p json_answer['hits']
937
- p json_answer['facets']
938
- ```
939
-
940
- Search parameters can be specified either through the index's [settings](https://github.com/algolia/algoliasearch-client-ruby#index-settings-parameters) statically in your model or dynamically at search time specifying [search parameters](https://github.com/algolia/algoliasearch-client-ruby#search) as second argument of the `search` method:
941
-
942
- ```ruby
943
- class Contact < ActiveRecord::Base
944
- include AlgoliaSearch
945
-
946
- algoliasearch do
947
- attribute :first_name, :last_name, :email
948
-
949
- # default search parameters stored in the index settings
950
- minWordSizeForApprox1 4
951
- minWordSizeForApprox2 8
952
- hitsPerPage 42
953
- end
954
- end
955
- ```
956
-
957
- ```ruby
958
- # dynamical search parameters
959
- p Contact.raw_search("jon doe", { :hitsPerPage => 5, :page => 2 })
960
- ```
961
-
962
- ## Faceting
963
-
964
- Facets can be retrieved calling the extra `facets` method of the search answer.
965
-
966
- ```ruby
967
- class Contact < ActiveRecord::Base
968
- include AlgoliaSearch
969
-
970
- algoliasearch do
971
- # [...]
972
-
973
- # specify the list of attributes available for faceting
974
- attributesForFaceting [:company, :zip_code]
975
- end
976
- end
977
- ```
978
-
979
- ```ruby
980
- hits = Contact.search("jon doe", { :facets => '*' })
981
- p hits # ORM-compliant array of objects
982
- p hits.facets # extra method added to retrieve facets
983
- p hits.facets['company'] # facet values+count of facet 'company'
984
- p hits.facets['zip_code'] # facet values+count of facet 'zip_code'
985
- ```
986
-
987
- ```ruby
988
- raw_json = Contact.raw_search("jon doe", { :facets => '*' })
989
- p raw_json['facets']
990
- ```
991
-
992
- ## Facet search
993
-
994
- You can also search for facet values.
995
-
996
- ```ruby
997
- Product.search_for_facet_values('category', 'Headphones') # Array of {value, highlighted, count}
998
- ```
999
-
1000
- This method can also take any parameter a query can take.
1001
- This will adjust the search to only hits which would have matched the query.
1002
-
1003
- ```ruby
1004
- # Only sends back the categories containing red Apple products (and only counts those)
1005
- Product.search_for_facet_values('category', 'phone', {
1006
- query: 'red',
1007
- filters: 'brand:Apple'
1008
- }) # Array of phone categories linked to red Apple products
1009
- ```
1010
-
1011
- ## Group by
1012
-
1013
- More info on distinct for grouping can be found
1014
- [here](https://www.algolia.com/doc/guides/search/distinct#distinct-for-grouping).
1015
-
1016
- ```ruby
1017
- class Contact < ActiveRecord::Base
1018
- include AlgoliaSearch
1019
-
1020
- algoliasearch do
1021
- # [...]
1022
-
1023
- # specify the attribute to be used for distinguishing the records
1024
- # in this case the records will be grouped by company
1025
- attributeForDistinct "company"
1026
- end
1027
- end
1028
- ```
1029
-
1030
- ## Geo-Search
1031
-
1032
- Use the <code>geoloc</code> method to localize your record:
1033
-
1034
- ```ruby
1035
- class Contact < ActiveRecord::Base
1036
- include AlgoliaSearch
1037
-
1038
- algoliasearch do
1039
- geoloc :lat_attr, :lng_attr
1040
- end
1041
- end
1042
- ```
1043
-
1044
- At query time, specify <code>{ aroundLatLng: "37.33, -121.89", aroundRadius: 50000 }</code> as search parameters to restrict the result set to 50KM around San Jose.
1045
-
1046
- ## Caveats
1047
-
1048
- This gem makes intensive use of Rails' callbacks to trigger the indexing tasks. If you're using methods bypassing `after_validation`, `before_save` or `after_commit` callbacks, it will not index your changes. For example: `update_attribute` doesn't perform validations checks, to perform validations when updating use `update_attributes`.
1049
-
1050
- ## Timeouts
1051
-
1052
- You can configure a bunch of timeout threshold by setting the following options at initialization time:
1053
-
1054
- ```ruby
1055
- AlgoliaSearch.configuration = {
1056
- application_id: 'YourApplicationID',
1057
- api_key: 'YourAPIKey'
1058
- connect_timeout: 2,
1059
- receive_timeout: 30,
1060
- send_timeout: 30,
1061
- batch_timeout: 120,
1062
- search_timeout: 5
1063
- }
1064
- ```
1065
-
1066
- ## Note on testing
1044
+ ## Notes
1067
1045
 
1068
1046
  To run the specs, please set the <code>ALGOLIA_APPLICATION_ID</code> and <code>ALGOLIA_API_KEY</code> environment variables. Since the tests are creating and removing indexes, DO NOT use your production account.
1069
1047
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.17.0
1
+ 1.17.1
@@ -66,7 +66,7 @@ module AlgoliaSearch
66
66
  :unretrievableAttributes, :disableTypoToleranceOnWords, :disableTypoToleranceOnAttributes, :altCorrections,
67
67
  :ignorePlurals, :maxValuesPerFacet, :distinct, :numericAttributesToIndex, :numericAttributesForFiltering,
68
68
  :allowTyposOnNumericTokens, :allowCompressionOfIntegerArray,
69
- :advancedSyntax]
69
+ :advancedSyntax, :disablePrefixOnAttributes, :disableTypoToleranceOnAttributes]
70
70
  OPTIONS.each do |k|
71
71
  define_method k do |v|
72
72
  instance_variable_set("@#{k}", v)
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.17.0
4
+ version: 1.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algolia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-05 00:00:00.000000000 Z
11
+ date: 2017-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json