searchkick 2.3.2 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
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