searchkick 2.3.2 → 5.2.1

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.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +377 -84
  3. data/LICENSE.txt +1 -1
  4. data/README.md +859 -602
  5. data/lib/searchkick/bulk_reindex_job.rb +13 -9
  6. data/lib/searchkick/controller_runtime.rb +40 -0
  7. data/lib/searchkick/hash_wrapper.rb +12 -0
  8. data/lib/searchkick/index.rb +281 -356
  9. data/lib/searchkick/index_cache.rb +30 -0
  10. data/lib/searchkick/index_options.rb +487 -281
  11. data/lib/searchkick/indexer.rb +15 -8
  12. data/lib/searchkick/log_subscriber.rb +57 -0
  13. data/lib/searchkick/middleware.rb +9 -2
  14. data/lib/searchkick/model.rb +72 -118
  15. data/lib/searchkick/multi_search.rb +9 -10
  16. data/lib/searchkick/process_batch_job.rb +12 -15
  17. data/lib/searchkick/process_queue_job.rb +22 -13
  18. data/lib/searchkick/query.rb +458 -217
  19. data/lib/searchkick/railtie.rb +7 -0
  20. data/lib/searchkick/record_data.rb +128 -0
  21. data/lib/searchkick/record_indexer.rb +164 -0
  22. data/lib/searchkick/reindex_queue.rb +51 -9
  23. data/lib/searchkick/reindex_v2_job.rb +10 -32
  24. data/lib/searchkick/relation.rb +247 -0
  25. data/lib/searchkick/relation_indexer.rb +155 -0
  26. data/lib/searchkick/results.rb +201 -82
  27. data/lib/searchkick/version.rb +1 -1
  28. data/lib/searchkick/where.rb +11 -0
  29. data/lib/searchkick.rb +269 -97
  30. data/lib/tasks/searchkick.rake +37 -0
  31. metadata +24 -178
  32. data/.gitignore +0 -22
  33. data/.travis.yml +0 -39
  34. data/Gemfile +0 -16
  35. data/Rakefile +0 -20
  36. data/benchmark/Gemfile +0 -23
  37. data/benchmark/benchmark.rb +0 -97
  38. data/lib/searchkick/logging.rb +0 -242
  39. data/lib/searchkick/tasks.rb +0 -33
  40. data/searchkick.gemspec +0 -28
  41. data/test/aggs_test.rb +0 -197
  42. data/test/autocomplete_test.rb +0 -75
  43. data/test/boost_test.rb +0 -202
  44. data/test/callbacks_test.rb +0 -59
  45. data/test/ci/before_install.sh +0 -17
  46. data/test/errors_test.rb +0 -19
  47. data/test/gemfiles/activerecord31.gemfile +0 -7
  48. data/test/gemfiles/activerecord32.gemfile +0 -7
  49. data/test/gemfiles/activerecord40.gemfile +0 -8
  50. data/test/gemfiles/activerecord41.gemfile +0 -8
  51. data/test/gemfiles/activerecord42.gemfile +0 -7
  52. data/test/gemfiles/activerecord50.gemfile +0 -7
  53. data/test/gemfiles/apartment.gemfile +0 -8
  54. data/test/gemfiles/cequel.gemfile +0 -8
  55. data/test/gemfiles/mongoid2.gemfile +0 -7
  56. data/test/gemfiles/mongoid3.gemfile +0 -6
  57. data/test/gemfiles/mongoid4.gemfile +0 -7
  58. data/test/gemfiles/mongoid5.gemfile +0 -7
  59. data/test/gemfiles/mongoid6.gemfile +0 -12
  60. data/test/gemfiles/nobrainer.gemfile +0 -8
  61. data/test/gemfiles/parallel_tests.gemfile +0 -8
  62. data/test/geo_shape_test.rb +0 -175
  63. data/test/highlight_test.rb +0 -78
  64. data/test/index_test.rb +0 -166
  65. data/test/inheritance_test.rb +0 -83
  66. data/test/marshal_test.rb +0 -8
  67. data/test/match_test.rb +0 -276
  68. data/test/misspellings_test.rb +0 -56
  69. data/test/model_test.rb +0 -42
  70. data/test/multi_search_test.rb +0 -36
  71. data/test/multi_tenancy_test.rb +0 -22
  72. data/test/order_test.rb +0 -46
  73. data/test/pagination_test.rb +0 -70
  74. data/test/partial_reindex_test.rb +0 -58
  75. data/test/query_test.rb +0 -35
  76. data/test/records_test.rb +0 -10
  77. data/test/reindex_test.rb +0 -64
  78. data/test/reindex_v2_job_test.rb +0 -32
  79. data/test/routing_test.rb +0 -23
  80. data/test/should_index_test.rb +0 -32
  81. data/test/similar_test.rb +0 -28
  82. data/test/sql_test.rb +0 -214
  83. data/test/suggest_test.rb +0 -95
  84. data/test/support/kaminari.yml +0 -21
  85. data/test/synonyms_test.rb +0 -67
  86. data/test/test_helper.rb +0 -567
  87. data/test/where_test.rb +0 -223
data/CHANGELOG.md CHANGED
@@ -1,4 +1,297 @@
1
- ## 2.3.2
1
+ ## 5.2.1 (2023-02-21)
2
+
3
+ - Added support for `redis-client` gem
4
+
5
+ ## 5.2.0 (2023-02-08)
6
+
7
+ - Added model name to warning about missing records
8
+ - Fixed unnecessary data loading when reindexing relations with `:async` and `:queue` modes
9
+
10
+ ## 5.1.2 (2023-01-29)
11
+
12
+ - Fixed error with missing point in time
13
+
14
+ ## 5.1.1 (2022-12-05)
15
+
16
+ - Added support for strings for `offset` and `per_page`
17
+
18
+ ## 5.1.0 (2022-10-12)
19
+
20
+ - Added support for fractional search timeout
21
+ - Fixed search timeout with `elasticsearch` 8+ and `opensearch-ruby` gems
22
+ - Fixed search timeout not applying to `multi_search`
23
+
24
+ ## 5.0.5 (2022-10-09)
25
+
26
+ - Added `model` method to `Searchkick::Relation`
27
+ - Fixed deprecation warning with `redis` gem
28
+ - Fixed `respond_to?` method on relation loading relation
29
+ - Fixed `Relation loaded` error for non-mutating methods on relation
30
+
31
+ ## 5.0.4 (2022-06-16)
32
+
33
+ - Added `max_result_window` option
34
+ - Improved error message for unsupported versions of Elasticsearch
35
+
36
+ ## 5.0.3 (2022-03-13)
37
+
38
+ - Fixed context for index name for inherited models
39
+
40
+ ## 5.0.2 (2022-03-03)
41
+
42
+ - Fixed index name for inherited models
43
+
44
+ ## 5.0.1 (2022-02-27)
45
+
46
+ - Prefer `mode: :async` over `async: true` for full reindex
47
+ - Fixed instance method overriding with concerns
48
+
49
+ ## 5.0.0 (2022-02-21)
50
+
51
+ - Searches now use lazy loading (similar to Active Record)
52
+ - Added `unscope` option to better support working with default scopes
53
+ - Added support for `:async` and `:queue` modes for `reindex` on relation
54
+ - Added basic protection from unfiltered parameters to `where` option
55
+ - Added `models` option to `similar` method
56
+ - Changed async full reindex to fetch ids instead of using ranges for numeric primary keys with Active Record
57
+ - Changed `searchkick_index_options` to return symbol keys (instead of mix of strings and symbols)
58
+ - Changed non-anchored regular expressions to match expected results (previously warned)
59
+ - Changed record reindex to return `true` to match model and relation reindex
60
+ - Updated async reindex job to call `search_import` for nested associations
61
+ - Fixed removing records when `should_index?` is `false` when `reindex` called on relation
62
+ - Fixed issue with `merge_mappings` for fields that use `searchkick` options
63
+ - Raise error when `search` called on relations
64
+ - Raise `ArgumentError` (instead of warning) for invalid regular expression modifiers
65
+ - Raise `ArgumentError` instead of `RuntimeError` for unknown operators
66
+ - Removed mapping of `id` to `_id` with `order` option (not supported in Elasticsearch 8)
67
+ - Removed `wordnet` option (no longer worked)
68
+ - Removed dependency on `elasticsearch` gem (can use `elasticsearch` or `opensearch-ruby`)
69
+ - Dropped support for Elasticsearch 6
70
+ - Dropped support for Ruby < 2.6 and Active Record < 5.2
71
+ - Dropped support for NoBrainer and Cequel
72
+ - Dropped support for `faraday_middleware-aws-signers-v4` (use `faraday_middleware-aws-sigv4` instead)
73
+
74
+ ## 4.6.3 (2021-11-19)
75
+
76
+ - Added support for reloadable synonyms for OpenSearch
77
+ - Added experimental support for `opensearch-ruby` gem
78
+ - Removed `elasticsearch-xpack` dependency for reloadable synonyms
79
+
80
+ ## 4.6.2 (2021-11-15)
81
+
82
+ - Added support for beginless ranges to `where` option
83
+ - Fixed `like` and `ilike` with `+` character
84
+ - Fixed warning about accessing system indices when no model or index specified
85
+
86
+ ## 4.6.1 (2021-09-25)
87
+
88
+ - Added `ilike` operator for Elasticsearch 7.10+
89
+ - Fixed missing methods with `multi_search`
90
+
91
+ ## 4.6.0 (2021-08-22)
92
+
93
+ - Added support for case-insensitive regular expressions with Elasticsearch 7.10+
94
+ - Added support for `OPENSEARCH_URL`
95
+ - Fixed error with `debug` option
96
+
97
+ ## 4.5.2 (2021-08-05)
98
+
99
+ - Fixed error with reindex queue
100
+ - Fixed error with `model_name` method with multiple models
101
+ - Fixed error with `debug` option with elasticsearch-ruby 7.14
102
+
103
+ ## 4.5.1 (2021-08-03)
104
+
105
+ - Improved performance of reindex queue
106
+
107
+ ## 4.5.0 (2021-06-07)
108
+
109
+ - Added experimental support for OpenSearch
110
+ - Added support for synonyms in Japanese
111
+
112
+ ## 4.4.4 (2021-03-12)
113
+
114
+ - Fixed `too_long_frame_exception` with `scroll` method
115
+ - Fixed multi-word emoji tokenization
116
+
117
+ ## 4.4.3 (2021-02-25)
118
+
119
+ - Added support for Hunspell
120
+ - Fixed warning about accessing system indices
121
+
122
+ ## 4.4.2 (2020-11-23)
123
+
124
+ - Added `missing_records` method to results
125
+ - Fixed issue with `like` and special characters
126
+
127
+ ## 4.4.1 (2020-06-24)
128
+
129
+ - Added `stem_exclusion` and `stemmer_override` options
130
+ - Added `with_score` method to search results
131
+ - Improved error message for `reload_synonyms` with non-OSS version of Elasticsearch
132
+ - Improved output for reindex rake task
133
+
134
+ ## 4.4.0 (2020-06-17)
135
+
136
+ - Added support for reloadable, multi-word, search time synonyms
137
+ - Fixed another deprecation warning in Ruby 2.7
138
+
139
+ ## 4.3.1 (2020-05-13)
140
+
141
+ - Fixed error with `exclude` in certain cases for Elasticsearch 7.7
142
+
143
+ ## 4.3.0 (2020-02-19)
144
+
145
+ - Fixed `like` queries with `"` character
146
+ - Better error when invalid parameters passed to `where`
147
+
148
+ ## 4.2.1 (2020-01-27)
149
+
150
+ - Fixed deprecation warnings with Elasticsearch
151
+ - Fixed deprecation warnings in Ruby 2.7
152
+
153
+ ## 4.2.0 (2019-12-18)
154
+
155
+ - Added safety check for multiple `Model.reindex`
156
+ - Added `deep_paging` option
157
+ - Added request parameters to search notifications and curl representation
158
+ - Removed curl from search notifications to prevent confusion
159
+
160
+ ## 4.1.1 (2019-11-19)
161
+
162
+ - Added `chinese2` and `korean2` languages
163
+ - Improved performance of async full reindex
164
+ - Fixed `searchkick:reindex:all` rake task for Rails 6
165
+
166
+ ## 4.1.0 (2019-08-01)
167
+
168
+ - Added `like` operator
169
+ - Added `exists` operator
170
+ - Added warnings for certain regular expressions
171
+ - Fixed anchored regular expressions
172
+
173
+ ## 4.0.2 (2019-06-04)
174
+
175
+ - Added block form of `scroll`
176
+ - Added `clear_scroll` method
177
+ - Fixed custom mappings
178
+
179
+ ## 4.0.1 (2019-05-30)
180
+
181
+ - Added support for scroll API
182
+ - Made type optional for custom mapping for Elasticsearch 6
183
+ - Fixed error when suggestions empty
184
+ - Fixed `models` option with inheritance
185
+
186
+ ## 4.0.0 (2019-04-11)
187
+
188
+ - Added support for Elasticsearch 7
189
+ - Added `models` option
190
+
191
+ Breaking changes
192
+
193
+ - Removed support for Elasticsearch 5
194
+ - Removed support for multi-word synonyms (they no longer work with shingles)
195
+ - Removed support for Active Record < 5
196
+
197
+ ## 3.1.3 (2019-04-11)
198
+
199
+ - Added support for endless ranges
200
+ - Added support for routing to `similar` method
201
+ - Added `prefix` to `where`
202
+ - Fixed error with elasticsearch-ruby 6.3
203
+ - Fixed error with some language stemmers and Elasticsearch 6.5
204
+ - Fixed issue with misspellings below and body block
205
+
206
+ ## 3.1.2 (2018-09-27)
207
+
208
+ - Improved performance of indices boost
209
+ - Fixed deletes with routing and `async` callbacks
210
+ - Fixed deletes with routing and `queue` callbacks
211
+ - Fixed deprecation warnings
212
+ - Fixed field misspellings for older partial match format
213
+
214
+ ## 3.1.1 (2018-08-09)
215
+
216
+ - Added per-field misspellings
217
+ - Added `case_sensitive` option
218
+ - Added `stem` option
219
+ - Added `total_entries` option
220
+ - Fixed `exclude` option with match all
221
+ - Fixed `with_highlights` method
222
+
223
+ ## 3.1.0 (2018-05-12)
224
+
225
+ - Added `:inline` as alias for `true` for `callbacks` and `mode` options
226
+ - Friendlier error message for bad mapping with partial matches
227
+ - Warn when records in search index do not exist in database
228
+ - Easier merging for `merge_mapping`
229
+ - Fixed `with_hit` and `with_highlights` when records in search index do not exist in database
230
+ - Fixed error with highlights and match all
231
+
232
+ ## 3.0.3 (2018-04-22)
233
+
234
+ - Added support for pagination with `body` option
235
+ - Added `boost_by_recency` option
236
+ - Fixed "Model Search Data" output for `debug` option
237
+ - Fixed `reindex_status` error
238
+ - Fixed error with optional operators in Ruby regexp
239
+ - Fixed deprecation warnings for Elasticsearch 6.2+
240
+
241
+ ## 3.0.2 (2018-03-26)
242
+
243
+ - Added support for Korean and Vietnamese
244
+ - Fixed `Unsupported argument type: Symbol` for async partial reindex
245
+ - Fixed infinite recursion with multi search and misspellings below
246
+ - Do not raise an error when `id` is indexed
247
+
248
+ ## 3.0.1 (2018-03-14)
249
+
250
+ - Added `scope` option for partial reindex
251
+ - Added support for Japanese, Polish, and Ukrainian
252
+
253
+ ## 3.0.0 (2018-03-03)
254
+
255
+ - Added support for Chinese
256
+ - No longer requires fields to query for Elasticsearch 6
257
+ - Results can be marshaled by default (unless using `highlight` option)
258
+
259
+ Breaking changes
260
+
261
+ - Removed support for Elasticsearch 2
262
+ - Removed support for Active Record < 4.2 and Mongoid < 5
263
+ - Types are no longer used
264
+ - The `_all` field is disabled by default in Elasticsearch 5
265
+ - Conversions are not stemmed by default
266
+ - An `ArgumentError` is raised instead of a warning when options are incompatible with the `body` option
267
+ - Removed `log` option from `boost_by`
268
+ - Removed `Model.enable_search_callbacks`, `Model.disable_search_callbacks`, and `Model.search_callbacks?`
269
+ - Removed `reindex_async` method, as `reindex` now defaults to callbacks mode specified on the model
270
+ - Removed `async` option from `record.reindex`
271
+ - Removed `search_hit` method - use `with_hit` instead
272
+ - Removed `each_with_hit` - use `with_hit.each` instead
273
+ - Removed `with_details` - use `with_highlights` instead
274
+ - Bumped default `limit` to 10,000
275
+
276
+ ## 2.5.0 (2018-02-15)
277
+
278
+ - Try requests 3 times before raising error
279
+ - Better exception when trying to access results for failed multi-search query
280
+ - More efficient aggregations with `where` clauses
281
+ - Added support for `faraday_middleware-aws-sigv4`
282
+ - Added `credentials` option to `aws_credentials`
283
+ - Added `modifier` option to `boost_by`
284
+ - Added `scope_results` option
285
+ - Added `factor` option to `boost_by_distance`
286
+
287
+ ## 2.4.0 (2017-11-14)
288
+
289
+ - Fixed `similar` for Elasticsearch 6
290
+ - Added `inheritance` option
291
+ - Added `_type` option
292
+ - Fixed `Must specify fields to search` error when searching `*`
293
+
294
+ ## 2.3.2 (2017-09-08)
2
295
 
3
296
  - Added `_all` and `default_fields` options
4
297
  - Added global `index_prefix` option
@@ -10,14 +303,14 @@
10
303
  - Fixed bug where `routing` and `type` options were silently ignored with `body` option
11
304
  - Fixed `reindex(async: true)` for non-numeric primary keys in Postgres
12
305
 
13
- ## 2.3.1
306
+ ## 2.3.1 (2017-07-06)
14
307
 
15
308
  - Added support for `reindex(async: true)` for non-numeric primary keys
16
309
  - Added `conversions_term` option
17
310
  - Added support for passing fields to `suggest` option
18
311
  - Fixed `page_view_entries` for Kaminari
19
312
 
20
- ## 2.3.0
313
+ ## 2.3.0 (2017-05-06)
21
314
 
22
315
  - Fixed analyzer on dynamically mapped fields
23
316
  - Fixed error with `similar` method and `_all` field
@@ -25,54 +318,54 @@
25
318
  - Added `queue_name` option
26
319
  - No longer require synonyms to be lowercase
27
320
 
28
- ## 2.2.1
321
+ ## 2.2.1 (2017-04-16)
29
322
 
30
323
  - Added `avg`, `cardinality`, `max`, `min`, and `sum` aggregations
31
324
  - Added `load: {dumpable: true}` option
32
325
  - Added `index_suffix` option
33
326
  - Accept string for `exclude` option
34
327
 
35
- ## 2.2.0
328
+ ## 2.2.0 (2017-03-19)
36
329
 
37
330
  - Fixed bug with text values longer than 256 characters and `_all` field - see [#850](https://github.com/ankane/searchkick/issues/850)
38
331
  - Fixed issue with `_all` field in `searchable`
39
332
  - Fixed `exclude` option with `word_start`
40
333
 
41
- ## 2.1.1
334
+ ## 2.1.1 (2017-01-17)
42
335
 
43
336
  - Fixed duplicate notifications
44
337
  - Added support for `connection_pool`
45
338
  - Added `exclude` option
46
339
 
47
- ## 2.1.0
340
+ ## 2.1.0 (2017-01-15)
48
341
 
49
342
  - Background reindexing and queues are officially supported
50
343
  - Log updates and deletes
51
344
 
52
- ## 2.0.4
345
+ ## 2.0.4 (2017-01-15)
53
346
 
54
347
  - Added support for queuing updates [experimental]
55
348
  - Added `refresh_interval` option to `reindex`
56
349
  - Prefer `search_index` over `searchkick_index`
57
350
 
58
- ## 2.0.3
351
+ ## 2.0.3 (2017-01-12)
59
352
 
60
353
  - Added `async` option to `reindex` [experimental]
61
354
  - Added `misspellings?` method to results
62
355
 
63
- ## 2.0.2
356
+ ## 2.0.2 (2017-01-08)
64
357
 
65
358
  - Added `retain` option to `reindex`
66
359
  - Added support for attributes in highlight tags
67
360
  - Fixed potentially silent errors in reindex job
68
361
  - Improved syntax for `boost_by_distance`
69
362
 
70
- ## 2.0.1
363
+ ## 2.0.1 (2016-12-30)
71
364
 
72
365
  - Added `search_hit` and `search_highlights` methods to models
73
366
  - Improved reindex performance
74
367
 
75
- ## 2.0.0
368
+ ## 2.0.0 (2016-12-28)
76
369
 
77
370
  - Added support for `reindex` on associations
78
371
 
@@ -91,75 +384,75 @@ Breaking changes
91
384
  - The `unsearchable` and `only_analyzed` options have been removed in favor of `searchable` and `filterable`
92
385
  - `load: false` no longer returns an array in Elasticsearch 2
93
386
 
94
- ## 1.5.1
387
+ ## 1.5.1 (2016-12-28)
95
388
 
96
389
  - Added `client_options`
97
390
  - Added `refresh` option to `reindex` method
98
391
  - Improved syntax for partial reindex
99
392
 
100
- ## 1.5.0
393
+ ## 1.5.0 (2016-12-23)
101
394
 
102
395
  - Added support for geo shape indexing and queries
103
396
  - Added `_and`, `_or`, `_not` to `where` option
104
397
 
105
- ## 1.4.2
398
+ ## 1.4.2 (2016-12-21)
106
399
 
107
400
  - Added support for directional synonyms
108
401
  - Easier AWS setup
109
402
  - Fixed `total_docs` method for ES 5+
110
403
  - Fixed exception on update errors
111
404
 
112
- ## 1.4.1
405
+ ## 1.4.1 (2016-12-11)
113
406
 
114
407
  - Added `partial_reindex` method
115
408
  - Added `debug` option to `search` method
116
409
  - Added `profile` option
117
410
 
118
- ## 1.4.0
411
+ ## 1.4.0 (2016-10-26)
119
412
 
120
413
  - Official support for Elasticsearch 5
121
414
  - Boost exact matches for partial matching
122
415
  - Added `searchkick_debug` method
123
416
  - Added `geo_polygon` filter
124
417
 
125
- ## 1.3.6
418
+ ## 1.3.6 (2016-10-08)
126
419
 
127
420
  - Fixed `Job adapter not found` error
128
421
 
129
- ## 1.3.5
422
+ ## 1.3.5 (2016-09-27)
130
423
 
131
424
  - Added support for Elasticsearch 5.0 beta
132
425
  - Added `request_params` option
133
426
  - Added `filterable` option
134
427
 
135
- ## 1.3.4
428
+ ## 1.3.4 (2016-08-23)
136
429
 
137
430
  - Added `resume` option to reindex
138
431
  - Added search timeout to payload
139
432
 
140
- ## 1.3.3
433
+ ## 1.3.3 (2016-08-02)
141
434
 
142
435
  - Fix for namespaced models (broken in 1.3.2)
143
436
 
144
- ## 1.3.2
437
+ ## 1.3.2 (2016-08-01)
145
438
 
146
439
  - Added `body_options` option
147
440
  - Added `date_histogram` aggregation
148
441
  - Added `indices_boost` option
149
442
  - Added support for multiple conversions
150
443
 
151
- ## 1.3.1
444
+ ## 1.3.1 (2016-07-10)
152
445
 
153
446
  - Fixed error with Ruby 2.0
154
447
  - Fixed error with indexing large fields
155
448
 
156
- ## 1.3.0
449
+ ## 1.3.0 (2016-05-04)
157
450
 
158
451
  - Added support for Elasticsearch 5.0 alpha
159
452
  - Added support for phrase matches
160
453
  - Added support for procs for `index_prefix` option
161
454
 
162
- ## 1.2.1
455
+ ## 1.2.1 (2016-02-15)
163
456
 
164
457
  - Added `multi_search` method
165
458
  - Added support for routing for Elasticsearch 2
@@ -167,7 +460,7 @@ Breaking changes
167
460
  - Fixed error with instrumentation for searching multiple models
168
461
  - Fixed instrumentation for bulk updates
169
462
 
170
- ## 1.2.0
463
+ ## 1.2.0 (2016-02-03)
171
464
 
172
465
  - Fixed deprecation warnings with `alias_method_chain`
173
466
  - Added `analyzed_only` option for large text fields
@@ -175,18 +468,18 @@ Breaking changes
175
468
  - Fixed issue in `similar` method with `per_page` option
176
469
  - Added basic support for multiple models
177
470
 
178
- ## 1.1.2
471
+ ## 1.1.2 (2015-12-18)
179
472
 
180
473
  - Added bulk updates with `callbacks` method
181
474
  - Added `bulk_delete` method
182
475
  - Added `search_timeout` option
183
476
  - Fixed bug with new location format for `boost_by_distance`
184
477
 
185
- ## 1.1.1
478
+ ## 1.1.1 (2015-12-14)
186
479
 
187
480
  - Added support for `{lat: lat, lon: lon}` as preferred format for locations
188
481
 
189
- ## 1.1.0
482
+ ## 1.1.0 (2015-12-08)
190
483
 
191
484
  - Added `below` option to misspellings to improve performance
192
485
  - Fixed synonyms for `word_*` partial matches
@@ -196,25 +489,25 @@ Breaking changes
196
489
  - Added `word` option
197
490
  - Added highlighted fields to `load: false`
198
491
 
199
- ## 1.0.3
492
+ ## 1.0.3 (2015-11-27)
200
493
 
201
494
  - Added support for Elasticsearch 2.1
202
495
 
203
- ## 1.0.2
496
+ ## 1.0.2 (2015-11-15)
204
497
 
205
498
  - Throw `Searchkick::ImportError` for errors when importing records
206
499
  - Errors now inherit from `Searchkick::Error`
207
500
  - Added `order` option to aggregations
208
501
  - Added `mapping` method
209
502
 
210
- ## 1.0.1
503
+ ## 1.0.1 (2015-11-05)
211
504
 
212
505
  - Added aggregations method to get raw response
213
506
  - Use `execute: false` for lazy loading
214
507
  - Return nil when no aggs
215
508
  - Added emoji search
216
509
 
217
- ## 1.0.0
510
+ ## 1.0.0 (2015-10-30)
218
511
 
219
512
  - Added support for Elasticsearch 2.0
220
513
  - Added support for aggregations
@@ -228,7 +521,7 @@ Breaking changes
228
521
  - Enabled misspellings by default for partial matches
229
522
  - Enabled transpositions by default for misspellings
230
523
 
231
- ## 0.9.1
524
+ ## 0.9.1 (2015-08-31)
232
525
 
233
526
  - `and` now matches `&`
234
527
  - Added `transpositions` option to misspellings
@@ -236,18 +529,18 @@ Breaking changes
236
529
  - Added `prefix_length` option to `misspellings`
237
530
  - Added ability to set env
238
531
 
239
- ## 0.9.0
532
+ ## 0.9.0 (2015-06-07)
240
533
 
241
534
  - Much better performance for where queries if no facets
242
535
  - Added basic support for regex
243
536
  - Added support for routing
244
537
  - Made `Searchkick.disable_callbacks` thread-safe
245
538
 
246
- ## 0.8.7
539
+ ## 0.8.7 (2015-02-14)
247
540
 
248
541
  - Fixed Mongoid import
249
542
 
250
- ## 0.8.6
543
+ ## 0.8.6 (2015-02-10)
251
544
 
252
545
  - Added support for NoBrainer
253
546
  - Added `stem_conversions: false` option
@@ -256,26 +549,26 @@ Breaking changes
256
549
  - Fixed suggestions with partial match boost
257
550
  - Fixed redefining existing instance methods in models
258
551
 
259
- ## 0.8.5
552
+ ## 0.8.5 (2014-11-11)
260
553
 
261
554
  - Added support for Elasticsearch 1.4
262
555
  - Added `unsearchable` option
263
556
  - Added `select: true` option
264
557
  - Added `body` option
265
558
 
266
- ## 0.8.4
559
+ ## 0.8.4 (2014-11-05)
267
560
 
268
561
  - Added `boost_by_distance`
269
562
  - More flexible highlight options
270
563
  - Better `env` logic
271
564
 
272
- ## 0.8.3
565
+ ## 0.8.3 (2014-09-20)
273
566
 
274
- - Added support for ActiveJob
567
+ - Added support for Active Job
275
568
  - Added `timeout` setting
276
569
  - Fixed import with no records
277
570
 
278
- ## 0.8.2
571
+ ## 0.8.2 (2014-08-18)
279
572
 
280
573
  - Added `async` to `callbacks` option
281
574
  - Added `wordnet` option
@@ -283,17 +576,17 @@ Breaking changes
283
576
  - Catch misspelling of `misspellings` option
284
577
  - Improved logging
285
578
 
286
- ## 0.8.1
579
+ ## 0.8.1 (2014-08-16)
287
580
 
288
581
  - Added `search_method_name` option
289
582
  - Fixed `order` for array of hashes
290
583
  - Added support for Mongoid 2
291
584
 
292
- ## 0.8.0
585
+ ## 0.8.0 (2014-07-12)
293
586
 
294
587
  - Added support for Elasticsearch 1.2
295
588
 
296
- ## 0.7.9
589
+ ## 0.7.9 (2014-06-30)
297
590
 
298
591
  - Added `tokens` method
299
592
  - Added `json` option
@@ -301,86 +594,86 @@ Breaking changes
301
594
  - Added `prev_page` for Kaminari pagination
302
595
  - Added `import` option to reindex
303
596
 
304
- ## 0.7.8
597
+ ## 0.7.8 (2014-06-22)
305
598
 
306
599
  - Added `boost_by` and `boost_where` options
307
600
  - Added ability to boost fields - `name^10`
308
601
  - Added `select` option for `load: false`
309
602
 
310
- ## 0.7.7
603
+ ## 0.7.7 (2014-06-10)
311
604
 
312
605
  - Added support for automatic failover
313
606
  - Fixed `operator` option (and default) for partial matches
314
607
 
315
- ## 0.7.6
608
+ ## 0.7.6 (2014-05-20)
316
609
 
317
610
  - Added `stats` option to facets
318
611
  - Added `padding` option
319
612
 
320
- ## 0.7.5
613
+ ## 0.7.5 (2014-05-13)
321
614
 
322
615
  - Do not throw errors when index becomes out of sync with database
323
616
  - Added custom exception types
324
617
  - Fixed `offset` and `offset_value`
325
618
 
326
- ## 0.7.4
619
+ ## 0.7.4 (2014-05-06)
327
620
 
328
621
  - Fixed reindex with inheritance
329
622
 
330
- ## 0.7.3
623
+ ## 0.7.3 (2014-04-30)
331
624
 
332
625
  - Fixed multi-index searches
333
626
  - Fixed suggestions for partial matches
334
627
  - Added `offset` and `length` for improved pagination
335
628
 
336
- ## 0.7.2
629
+ ## 0.7.2 (2014-04-24)
337
630
 
338
631
  - Added smart facets
339
632
  - Added more fields to `load: false` result
340
633
  - Fixed logging for multi-index searches
341
634
  - Added `first_page?` and `last_page?` for improved Kaminari support
342
635
 
343
- ## 0.7.1
636
+ ## 0.7.1 (2014-04-12)
344
637
 
345
638
  - Fixed huge issue w/ zero-downtime reindexing on 0.90
346
639
 
347
- ## 0.7.0
640
+ ## 0.7.0 (2014-04-10)
348
641
 
349
642
  - Added support for Elasticsearch 1.1
350
643
  - Dropped support for Elasticsearch below 0.90.4 (unfortunate side effect of above)
351
644
 
352
- ## 0.6.3
645
+ ## 0.6.3 (2014-04-08)
353
646
 
354
647
  - Removed patron since no support for Windows
355
648
  - Added error if `searchkick` is called multiple times
356
649
 
357
- ## 0.6.2
650
+ ## 0.6.2 (2014-04-05)
358
651
 
359
652
  - Added logging
360
653
  - Fixed index_name option
361
654
  - Added ability to use proc as the index name
362
655
 
363
- ## 0.6.1
656
+ ## 0.6.1 (2014-03-24)
364
657
 
365
658
  - Fixed huge issue w/ zero-downtime reindexing on 0.90 and elasticsearch-ruby 1.0
366
659
  - Restore load: false behavior
367
660
  - Restore total_entries method
368
661
 
369
- ## 0.6.0
662
+ ## 0.6.0 (2014-03-22)
370
663
 
371
664
  - Moved to elasticsearch-ruby
372
665
  - Added support for modifying the query and viewing the response
373
666
  - Added support for page_entries_info method
374
667
 
375
- ## 0.5.3
668
+ ## 0.5.3 (2014-02-24)
376
669
 
377
670
  - Fixed bug w/ word_* queries
378
671
 
379
- ## 0.5.2
672
+ ## 0.5.2 (2014-02-12)
380
673
 
381
- - Use after_commit hook for ActiveRecord to prevent data inconsistencies
674
+ - Use after_commit hook for Active Record to prevent data inconsistencies
382
675
 
383
- ## 0.5.1
676
+ ## 0.5.1 (2014-02-12)
384
677
 
385
678
  - Replaced stop words with common terms query
386
679
  - Added language option
@@ -388,89 +681,89 @@ Breaking changes
388
681
  - Fixed bug with MongoDB integer _id
389
682
  - Fixed reindex bug when callbacks disabled
390
683
 
391
- ## 0.5.0
684
+ ## 0.5.0 (2014-01-20)
392
685
 
393
686
  - Better control over partial matches
394
687
  - Added merge_mappings option
395
688
  - Added batch_size option
396
689
  - Fixed bug with nil where clauses
397
690
 
398
- ## 0.4.2
691
+ ## 0.4.2 (2013-12-29)
399
692
 
400
693
  - Added `should_index?` method to control which records are indexed
401
694
  - Added ability to temporarily disable callbacks
402
695
  - Added custom mappings
403
696
 
404
- ## 0.4.1
697
+ ## 0.4.1 (2013-12-19)
405
698
 
406
699
  - Fixed issue w/ inheritance mapping
407
700
 
408
- ## 0.4.0
701
+ ## 0.4.0 (2013-12-11)
409
702
 
410
703
  - Added support for Mongoid 4
411
704
  - Added support for multiple locations
412
705
 
413
- ## 0.3.5
706
+ ## 0.3.5 (2013-12-08)
414
707
 
415
708
  - Added facet ranges
416
709
  - Added all operator
417
710
 
418
- ## 0.3.4
711
+ ## 0.3.4 (2013-11-22)
419
712
 
420
713
  - Added highlighting
421
714
  - Added :distance option to misspellings
422
715
  - Fixed issue w/ BigDecimal serialization
423
716
 
424
- ## 0.3.3
717
+ ## 0.3.3 (2013-11-04)
425
718
 
426
719
  - Better error messages
427
720
  - Added where: {field: nil} queries
428
721
 
429
- ## 0.3.2
722
+ ## 0.3.2 (2013-11-02)
430
723
 
431
724
  - Added support for single table inheritance
432
725
  - Removed Tire::Model::Search
433
726
 
434
- ## 0.3.1
727
+ ## 0.3.1 (2013-11-02)
435
728
 
436
729
  - Added index_prefix option
437
730
  - Fixed ES issue with incorrect facet counts
438
731
  - Added option to turn off special characters
439
732
 
440
- ## 0.3.0
733
+ ## 0.3.0 (2013-11-02)
441
734
 
442
735
  - Fixed reversed coordinates
443
736
  - Added bounded by a box queries
444
737
  - Expanded `or` queries
445
738
 
446
- ## 0.2.8
739
+ ## 0.2.8 (2013-09-30)
447
740
 
448
741
  - Added option to disable callbacks
449
742
  - Fixed bug with facets with Elasticsearch 0.90.5
450
743
 
451
- ## 0.2.7
744
+ ## 0.2.7 (2013-09-23)
452
745
 
453
746
  - Added limit to facet
454
747
  - Improved similar items
455
748
 
456
- ## 0.2.6
749
+ ## 0.2.6 (2013-09-10)
457
750
 
458
751
  - Added option to disable misspellings
459
752
 
460
- ## 0.2.5
753
+ ## 0.2.5 (2013-08-30)
461
754
 
462
755
  - Added geospartial searches
463
756
  - Create alias before importing document if no alias exists
464
757
  - Fixed exception when :per_page option is a string
465
758
  - Check `RAILS_ENV` if `RACK_ENV` is not set
466
759
 
467
- ## 0.2.4
760
+ ## 0.2.4 (2013-08-20)
468
761
 
469
762
  - Use `to_hash` instead of `as_json` for default `search_data` method
470
763
  - Works for Mongoid 1.3
471
764
  - Use one shard in test environment for consistent scores
472
765
 
473
- ## 0.2.3
766
+ ## 0.2.3 (2013-08-16)
474
767
 
475
768
  - Setup Travis
476
769
  - Clean old indices before reindex
@@ -478,33 +771,33 @@ Breaking changes
478
771
  - Fixed pagination
479
772
  - Added `similar` method
480
773
 
481
- ## 0.2.2
774
+ ## 0.2.2 (2013-08-11)
482
775
 
483
776
  - Clean old indices after reindex
484
777
  - More expansions for fuzzy queries
485
778
 
486
- ## 0.2.1
779
+ ## 0.2.1 (2013-08-11)
487
780
 
488
781
  - Added Rails logger
489
782
  - Only fetch ids when `load: true`
490
783
 
491
- ## 0.2.0
784
+ ## 0.2.0 (2013-08-10)
492
785
 
493
786
  - Added autocomplete
494
787
  - Added “Did you mean” suggestions
495
788
  - Added personalized searches
496
789
 
497
- ## 0.1.4
790
+ ## 0.1.4 (2013-08-03)
498
791
 
499
792
  - Bug fix
500
793
 
501
- ## 0.1.3
794
+ ## 0.1.3 (2013-08-03)
502
795
 
503
796
  - Changed edit distance to one for misspellings
504
797
  - Raise errors when indexing fails
505
798
  - Fixed pagination
506
799
  - Fixed :include option
507
800
 
508
- ## 0.1.2
801
+ ## 0.1.2 (2013-07-30)
509
802
 
510
803
  - Launch