searchkick_bharthur 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.travis.yml +44 -0
  4. data/CHANGELOG.md +360 -0
  5. data/Gemfile +8 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +1443 -0
  8. data/Rakefile +8 -0
  9. data/lib/searchkick/index.rb +662 -0
  10. data/lib/searchkick/logging.rb +185 -0
  11. data/lib/searchkick/middleware.rb +12 -0
  12. data/lib/searchkick/model.rb +105 -0
  13. data/lib/searchkick/query.rb +845 -0
  14. data/lib/searchkick/reindex_job.rb +26 -0
  15. data/lib/searchkick/reindex_v2_job.rb +23 -0
  16. data/lib/searchkick/results.rb +211 -0
  17. data/lib/searchkick/tasks.rb +33 -0
  18. data/lib/searchkick/version.rb +3 -0
  19. data/lib/searchkick.rb +159 -0
  20. data/searchkick.gemspec +28 -0
  21. data/test/aggs_test.rb +115 -0
  22. data/test/autocomplete_test.rb +65 -0
  23. data/test/boost_test.rb +144 -0
  24. data/test/callbacks_test.rb +27 -0
  25. data/test/ci/before_install.sh +21 -0
  26. data/test/dangerous_reindex_test.rb +27 -0
  27. data/test/facets_test.rb +90 -0
  28. data/test/gemfiles/activerecord31.gemfile +7 -0
  29. data/test/gemfiles/activerecord32.gemfile +7 -0
  30. data/test/gemfiles/activerecord40.gemfile +8 -0
  31. data/test/gemfiles/activerecord41.gemfile +8 -0
  32. data/test/gemfiles/activerecord50.gemfile +7 -0
  33. data/test/gemfiles/apartment.gemfile +8 -0
  34. data/test/gemfiles/mongoid2.gemfile +7 -0
  35. data/test/gemfiles/mongoid3.gemfile +6 -0
  36. data/test/gemfiles/mongoid4.gemfile +7 -0
  37. data/test/gemfiles/mongoid5.gemfile +7 -0
  38. data/test/gemfiles/nobrainer.gemfile +6 -0
  39. data/test/highlight_test.rb +63 -0
  40. data/test/index_test.rb +120 -0
  41. data/test/inheritance_test.rb +78 -0
  42. data/test/match_test.rb +227 -0
  43. data/test/misspellings_test.rb +46 -0
  44. data/test/model_test.rb +42 -0
  45. data/test/multi_search_test.rb +22 -0
  46. data/test/multi_tenancy_test.rb +22 -0
  47. data/test/order_test.rb +44 -0
  48. data/test/pagination_test.rb +53 -0
  49. data/test/query_test.rb +13 -0
  50. data/test/records_test.rb +8 -0
  51. data/test/reindex_job_test.rb +31 -0
  52. data/test/reindex_v2_job_test.rb +32 -0
  53. data/test/routing_test.rb +13 -0
  54. data/test/should_index_test.rb +32 -0
  55. data/test/similar_test.rb +28 -0
  56. data/test/sql_test.rb +196 -0
  57. data/test/suggest_test.rb +80 -0
  58. data/test/synonyms_test.rb +54 -0
  59. data/test/test_helper.rb +361 -0
  60. data/test/where_test.rb +171 -0
  61. metadata +231 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 818186270af7ec5267bc549fc676bf129dadbb80
4
+ data.tar.gz: 102234acb915dc57f54cc654361ae760bed16092
5
+ SHA512:
6
+ metadata.gz: 4a5cca2aa2830fa4112f2fa702b36930f0fc7fe3b060a9c3802033f0d5a4193eb8fb1de073440345c8d8dacfd76262cd6c5eacf5cefbb15b3904e0947fd20de0
7
+ data.tar.gz: 273108babbce1dd1f6e0696d09d3f9364c8dd749b8b6a94e7dc6ef0692708779386e968ba0a25a6094ae964650c174387bfbeeb1ee6d88ecf011f7d24dc9711f
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ *.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.log
19
+ .DS_Store
20
+ .ruby-*
21
+ .idea/
22
+ *.sqlite3
data/.travis.yml ADDED
@@ -0,0 +1,44 @@
1
+ language: ruby
2
+ rvm: 2.2.5
3
+ services:
4
+ - elasticsearch
5
+ - mongodb
6
+ before_install:
7
+ - ./test/ci/before_install.sh
8
+ script: RUBYOPT=W0 bundle exec rake test
9
+ before_script:
10
+ - psql -c 'create database searchkick_test;' -U postgres
11
+ notifications:
12
+ email:
13
+ on_success: never
14
+ on_failure: change
15
+ gemfile:
16
+ - Gemfile
17
+ - test/gemfiles/activerecord50.gemfile
18
+ - test/gemfiles/activerecord41.gemfile
19
+ - test/gemfiles/activerecord40.gemfile
20
+ - test/gemfiles/activerecord32.gemfile
21
+ - test/gemfiles/activerecord31.gemfile
22
+ - test/gemfiles/mongoid2.gemfile
23
+ - test/gemfiles/mongoid3.gemfile
24
+ - test/gemfiles/mongoid4.gemfile
25
+ - test/gemfiles/mongoid5.gemfile
26
+ env:
27
+ - ELASTICSEARCH_VERSION=2.3.0
28
+ matrix:
29
+ include:
30
+ - gemfile: Gemfile
31
+ env: ELASTICSEARCH_VERSION=1.0.0
32
+ - gemfile: Gemfile
33
+ env: ELASTICSEARCH_VERSION=1.7.0
34
+ - gemfile: Gemfile
35
+ env: ELASTICSEARCH_VERSION=2.0.0
36
+ - gemfile: Gemfile
37
+ env: ELASTICSEARCH_VERSION=5.0.0-alpha2
38
+ # - gemfile: test/gemfiles/nobrainer.gemfile
39
+ # env: NOBRAINER=true
40
+ allow_failures:
41
+ - gemfile: Gemfile
42
+ env: ELASTICSEARCH_VERSION=5.0.0-alpha2
43
+ # - gemfile: test/gemfiles/nobrainer.gemfile
44
+ # env: NOBRAINER=true
data/CHANGELOG.md ADDED
@@ -0,0 +1,360 @@
1
+ ## 1.3.1
2
+
3
+ - Fixed error with Ruby 2.0
4
+ - Fixed error with indexing large fields
5
+
6
+ ## 1.3.0
7
+
8
+ - Added support for Elasticsearch 5.0 alpha
9
+ - Added support for phrase matches
10
+ - Added support for procs for `index_prefix` option
11
+
12
+ ## 1.2.1
13
+
14
+ - Added `multi_search` method
15
+ - Added support for routing for Elasticsearch 2
16
+ - Added support for `search_document_id` and `search_document_type` in models
17
+ - Fixed error with instrumentation for searching multiple models
18
+ - Fixed instrumentation for bulk updates
19
+
20
+ ## 1.2.0
21
+
22
+ - Fixed deprecation warnings with `alias_method_chain`
23
+ - Added `analyzed_only` option for large text fields
24
+ - Added `encoder` option to highlight
25
+ - Fixed issue in `similar` method with `per_page` option
26
+ - Added basic support for multiple models
27
+
28
+ ## 1.1.2
29
+
30
+ - Added bulk updates with `callbacks` method
31
+ - Added `bulk_delete` method
32
+ - Added `search_timeout` option
33
+ - Fixed bug with new location format for `boost_by_distance`
34
+
35
+ ## 1.1.1
36
+
37
+ - Added support for `{lat: lat, lon: lon}` as preferred format for locations
38
+
39
+ ## 1.1.0
40
+
41
+ - Added `below` option to misspellings to improve performance
42
+ - Fixed synonyms for `word_*` partial matches
43
+ - Added `searchable` option
44
+ - Added `similarity` option
45
+ - Added `match` option
46
+ - Added `word` option
47
+ - Added highlighted fields to `load: false`
48
+
49
+ ## 1.0.3
50
+
51
+ - Added support for Elasticsearch 2.1
52
+
53
+ ## 1.0.2
54
+
55
+ - Throw `Searchkick::ImportError` for errors when importing records
56
+ - Errors now inherit from `Searchkick::Error`
57
+ - Added `order` option to aggregations
58
+ - Added `mapping` method
59
+
60
+ ## 1.0.1
61
+
62
+ - Added aggregations method to get raw response
63
+ - Use `execute: false` for lazy loading
64
+ - Return nil when no aggs
65
+ - Added emoji search
66
+
67
+ ## 1.0.0
68
+
69
+ - Added support for Elasticsearch 2.0
70
+ - Added support for aggregations
71
+ - Added ability to use misspellings for partial matches
72
+ - Added `fragment_size` option for highlight
73
+ - Added `took` method to results
74
+
75
+ Breaking changes
76
+
77
+ - Raise `Searchkick::DangerousOperation` error when calling reindex with scope
78
+ - Enabled misspellings by default for partial matches
79
+ - Enabled transpositions by default for misspellings
80
+
81
+ ## 0.9.1
82
+
83
+ - `and` now matches `&`
84
+ - Added `transpositions` option to misspellings
85
+ - Added `boost_mode` and `log` options to `boost_by`
86
+ - Added `prefix_length` option to `misspellings`
87
+ - Added ability to set env
88
+
89
+ ## 0.9.0
90
+
91
+ - Much better performance for where queries if no facets
92
+ - Added basic support for regex
93
+ - Added support for routing
94
+ - Made `Searchkick.disable_callbacks` thread-safe
95
+
96
+ ## 0.8.7
97
+
98
+ - Fixed Mongoid import
99
+
100
+ ## 0.8.6
101
+
102
+ - Added support for NoBrainer
103
+ - Added `stem_conversions: false` option
104
+ - Added support for multiple `boost_where` values on the same field
105
+ - Added support for array of values for `boost_where`
106
+ - Fixed suggestions with partial match boost
107
+ - Fixed redefining existing instance methods in models
108
+
109
+ ## 0.8.5
110
+
111
+ - Added support for Elasticsearch 1.4
112
+ - Added `unsearchable` option
113
+ - Added `select: true` option
114
+ - Added `body` option
115
+
116
+ ## 0.8.4
117
+
118
+ - Added `boost_by_distance`
119
+ - More flexible highlight options
120
+ - Better `env` logic
121
+
122
+ ## 0.8.3
123
+
124
+ - Added support for ActiveJob
125
+ - Added `timeout` setting
126
+ - Fixed import with no records
127
+
128
+ ## 0.8.2
129
+
130
+ - Added `async` to `callbacks` option
131
+ - Added `wordnet` option
132
+ - Added `edit_distance` option to eventually replace `distance` option
133
+ - Catch misspelling of `misspellings` option
134
+ - Improved logging
135
+
136
+ ## 0.8.1
137
+
138
+ - Added `search_method_name` option
139
+ - Fixed `order` for array of hashes
140
+ - Added support for Mongoid 2
141
+
142
+ ## 0.8.0
143
+
144
+ - Added support for Elasticsearch 1.2
145
+
146
+ ## 0.7.9
147
+
148
+ - Added `tokens` method
149
+ - Added `json` option
150
+ - Added exact matches
151
+ - Added `prev_page` for Kaminari pagination
152
+ - Added `import` option to reindex
153
+
154
+ ## 0.7.8
155
+
156
+ - Added `boost_by` and `boost_where` options
157
+ - Added ability to boost fields - `name^10`
158
+ - Added `select` option for `load: false`
159
+
160
+ ## 0.7.7
161
+
162
+ - Added support for automatic failover
163
+ - Fixed `operator` option (and default) for partial matches
164
+
165
+ ## 0.7.6
166
+
167
+ - Added `stats` option to facets
168
+ - Added `padding` option
169
+
170
+ ## 0.7.5
171
+
172
+ - Do not throw errors when index becomes out of sync with database
173
+ - Added custom exception types
174
+ - Fixed `offset` and `offset_value`
175
+
176
+ ## 0.7.4
177
+
178
+ - Fixed reindex with inheritance
179
+
180
+ ## 0.7.3
181
+
182
+ - Fixed multi-index searches
183
+ - Fixed suggestions for partial matches
184
+ - Added `offset` and `length` for improved pagination
185
+
186
+ ## 0.7.2
187
+
188
+ - Added smart facets
189
+ - Added more fields to `load: false` result
190
+ - Fixed logging for multi-index searches
191
+ - Added `first_page?` and `last_page?` for improved Kaminari support
192
+
193
+ ## 0.7.1
194
+
195
+ - Fixed huge issue w/ zero-downtime reindexing on 0.90
196
+
197
+ ## 0.7.0
198
+
199
+ - Added support for Elasticsearch 1.1
200
+ - Dropped support for Elasticsearch below 0.90.4 (unfortunate side effect of above)
201
+
202
+ ## 0.6.3
203
+
204
+ - Removed patron since no support for Windows
205
+ - Added error if `searchkick` is called multiple times
206
+
207
+ ## 0.6.2
208
+
209
+ - Added logging
210
+ - Fixed index_name option
211
+ - Added ability to use proc as the index name
212
+
213
+ ## 0.6.1
214
+
215
+ - Fixed huge issue w/ zero-downtime reindexing on 0.90 and elasticsearch-ruby 1.0
216
+ - Restore load: false behavior
217
+ - Restore total_entries method
218
+
219
+ ## 0.6.0
220
+
221
+ - Moved to elasticsearch-ruby
222
+ - Added support for modifying the query and viewing the response
223
+ - Added support for page_entries_info method
224
+
225
+ ## 0.5.3
226
+
227
+ - Fixed bug w/ word_* queries
228
+
229
+ ## 0.5.2
230
+
231
+ - Use after_commit hook for ActiveRecord to prevent data inconsistencies
232
+
233
+ ## 0.5.1
234
+
235
+ - Replaced stop words with common terms query
236
+ - Added language option
237
+ - Fixed bug with empty array in where clause
238
+ - Fixed bug with MongoDB integer _id
239
+ - Fixed reindex bug when callbacks disabled
240
+
241
+ ## 0.5.0
242
+
243
+ - Better control over partial matches
244
+ - Added merge_mappings option
245
+ - Added batch_size option
246
+ - Fixed bug with nil where clauses
247
+
248
+ ## 0.4.2
249
+
250
+ - Added `should_index?` method to control which records are indexed
251
+ - Added ability to temporarily disable callbacks
252
+ - Added custom mappings
253
+
254
+ ## 0.4.1
255
+
256
+ - Fixed issue w/ inheritance mapping
257
+
258
+ ## 0.4.0
259
+
260
+ - Added support for Mongoid 4
261
+ - Added support for multiple locations
262
+
263
+ ## 0.3.5
264
+
265
+ - Added facet ranges
266
+ - Added all operator
267
+
268
+ ## 0.3.4
269
+
270
+ - Added highlighting
271
+ - Added :distance option to misspellings
272
+ - Fixed issue w/ BigDecimal serialization
273
+
274
+ ## 0.3.3
275
+
276
+ - Better error messages
277
+ - Added where: {field: nil} queries
278
+
279
+ ## 0.3.2
280
+
281
+ - Added support for single table inheritance
282
+ - Removed Tire::Model::Search
283
+
284
+ ## 0.3.1
285
+
286
+ - Added index_prefix option
287
+ - Fixed ES issue with incorrect facet counts
288
+ - Added option to turn off special characters
289
+
290
+ ## 0.3.0
291
+
292
+ - Fixed reversed coordinates
293
+ - Added bounded by a box queries
294
+ - Expanded `or` queries
295
+
296
+ ## 0.2.8
297
+
298
+ - Added option to disable callbacks
299
+ - Fixed bug with facets with Elasticsearch 0.90.5
300
+
301
+ ## 0.2.7
302
+
303
+ - Added limit to facet
304
+ - Improved similar items
305
+
306
+ ## 0.2.6
307
+
308
+ - Added option to disable misspellings
309
+
310
+ ## 0.2.5
311
+
312
+ - Added geospartial searches
313
+ - Create alias before importing document if no alias exists
314
+ - Fixed exception when :per_page option is a string
315
+ - Check `RAILS_ENV` if `RACK_ENV` is not set
316
+
317
+ ## 0.2.4
318
+
319
+ - Use `to_hash` instead of `as_json` for default `search_data` method
320
+ - Works for Mongoid 1.3
321
+ - Use one shard in test environment for consistent scores
322
+
323
+ ## 0.2.3
324
+
325
+ - Setup Travis
326
+ - Clean old indices before reindex
327
+ - Search for `*` returns all results
328
+ - Fixed pagination
329
+ - Added `similar` method
330
+
331
+ ## 0.2.2
332
+
333
+ - Clean old indices after reindex
334
+ - More expansions for fuzzy queries
335
+
336
+ ## 0.2.1
337
+
338
+ - Added Rails logger
339
+ - Only fetch ids when `load: true`
340
+
341
+ ## 0.2.0
342
+
343
+ - Added autocomplete
344
+ - Added “Did you mean” suggestions
345
+ - Added personalized searches
346
+
347
+ ## 0.1.4
348
+
349
+ - Bug fix
350
+
351
+ ## 0.1.3
352
+
353
+ - Changed edit distance to one for misspellings
354
+ - Raise errors when indexing fails
355
+ - Fixed pagination
356
+ - Fixed :include option
357
+
358
+ ## 0.1.2
359
+
360
+ - Launch
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in searchkick.gemspec
4
+ gemspec
5
+
6
+ gem "sqlite3"
7
+ gem "activerecord", "~> 4.2.0"
8
+ gem "gemoji-parser"
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013-2016 Andrew Kane
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.