sunspot 2.2.0 → 2.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 (39) hide show
  1. checksums.yaml +7 -0
  2. data/lib/sunspot/dsl/field_query.rb +11 -9
  3. data/lib/sunspot/dsl/fulltext.rb +9 -1
  4. data/lib/sunspot/dsl/group.rb +108 -0
  5. data/lib/sunspot/dsl/search.rb +1 -1
  6. data/lib/sunspot/dsl.rb +1 -1
  7. data/lib/sunspot/field_factory.rb +28 -15
  8. data/lib/sunspot/indexer.rb +63 -17
  9. data/lib/sunspot/query/abstract_fulltext.rb +9 -2
  10. data/lib/sunspot/query/dismax.rb +11 -4
  11. data/lib/sunspot/query/{field_group.rb → group.rb} +16 -6
  12. data/lib/sunspot/query/group_query.rb +17 -0
  13. data/lib/sunspot/query/restriction.rb +45 -1
  14. data/lib/sunspot/query.rb +1 -1
  15. data/lib/sunspot/schema.rb +2 -1
  16. data/lib/sunspot/search/abstract_search.rb +7 -3
  17. data/lib/sunspot/search/query_group.rb +74 -0
  18. data/lib/sunspot/search/standard_search.rb +1 -1
  19. data/lib/sunspot/search.rb +1 -1
  20. data/lib/sunspot/session.rb +16 -0
  21. data/lib/sunspot/session_proxy/master_slave_session_proxy.rb +2 -2
  22. data/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +1 -1
  23. data/lib/sunspot/session_proxy/sharding_session_proxy.rb +4 -2
  24. data/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +1 -1
  25. data/lib/sunspot/session_proxy/thread_local_session_proxy.rb +3 -1
  26. data/lib/sunspot/type.rb +20 -0
  27. data/lib/sunspot/version.rb +1 -1
  28. data/lib/sunspot.rb +36 -2
  29. data/spec/api/indexer/attributes_spec.rb +5 -0
  30. data/spec/api/query/function_spec.rb +103 -0
  31. data/spec/api/query/group_spec.rb +23 -1
  32. data/spec/api/session_proxy/sharding_session_proxy_spec.rb +1 -1
  33. data/spec/helpers/integration_helper.rb +9 -0
  34. data/spec/integration/atomic_updates_spec.rb +44 -0
  35. data/spec/integration/field_grouping_spec.rb +13 -0
  36. data/spec/integration/scoped_search_spec.rb +51 -0
  37. data/spec/mocks/post.rb +3 -1
  38. metadata +11 -15
  39. data/lib/sunspot/dsl/field_group.rb +0 -57
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
5
- prerelease:
4
+ version: 2.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mat Brown
@@ -29,12 +28,11 @@ authors:
29
28
  autorequire:
30
29
  bindir: bin
31
30
  cert_chain: []
32
- date: 2015-04-09 00:00:00.000000000 Z
31
+ date: 2015-11-20 00:00:00.000000000 Z
33
32
  dependencies:
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: rsolr
36
35
  requirement: !ruby/object:Gem::Requirement
37
- none: false
38
36
  requirements:
39
37
  - - "~>"
40
38
  - !ruby/object:Gem::Version
@@ -42,7 +40,6 @@ dependencies:
42
40
  type: :runtime
43
41
  prerelease: false
44
42
  version_requirements: !ruby/object:Gem::Requirement
45
- none: false
46
43
  requirements:
47
44
  - - "~>"
48
45
  - !ruby/object:Gem::Version
@@ -50,7 +47,6 @@ dependencies:
50
47
  - !ruby/object:Gem::Dependency
51
48
  name: pr_geohash
52
49
  requirement: !ruby/object:Gem::Requirement
53
- none: false
54
50
  requirements:
55
51
  - - "~>"
56
52
  - !ruby/object:Gem::Version
@@ -58,7 +54,6 @@ dependencies:
58
54
  type: :runtime
59
55
  prerelease: false
60
56
  version_requirements: !ruby/object:Gem::Requirement
61
- none: false
62
57
  requirements:
63
58
  - - "~>"
64
59
  - !ruby/object:Gem::Version
@@ -66,7 +61,6 @@ dependencies:
66
61
  - !ruby/object:Gem::Dependency
67
62
  name: rspec
68
63
  requirement: !ruby/object:Gem::Requirement
69
- none: false
70
64
  requirements:
71
65
  - - "~>"
72
66
  - !ruby/object:Gem::Version
@@ -74,7 +68,6 @@ dependencies:
74
68
  type: :development
75
69
  prerelease: false
76
70
  version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
71
  requirements:
79
72
  - - "~>"
80
73
  - !ruby/object:Gem::Version
@@ -105,13 +98,13 @@ files:
105
98
  - lib/sunspot/data_extractor.rb
106
99
  - lib/sunspot/dsl.rb
107
100
  - lib/sunspot/dsl/adjustable.rb
108
- - lib/sunspot/dsl/field_group.rb
109
101
  - lib/sunspot/dsl/field_query.rb
110
102
  - lib/sunspot/dsl/field_stats.rb
111
103
  - lib/sunspot/dsl/fields.rb
112
104
  - lib/sunspot/dsl/fulltext.rb
113
105
  - lib/sunspot/dsl/function.rb
114
106
  - lib/sunspot/dsl/functional.rb
107
+ - lib/sunspot/dsl/group.rb
115
108
  - lib/sunspot/dsl/more_like_this_query.rb
116
109
  - lib/sunspot/dsl/paginatable.rb
117
110
  - lib/sunspot/dsl/query_facet.rb
@@ -135,12 +128,13 @@ files:
135
128
  - lib/sunspot/query/date_field_facet.rb
136
129
  - lib/sunspot/query/dismax.rb
137
130
  - lib/sunspot/query/field_facet.rb
138
- - lib/sunspot/query/field_group.rb
139
131
  - lib/sunspot/query/field_stats.rb
140
132
  - lib/sunspot/query/filter.rb
141
133
  - lib/sunspot/query/function_query.rb
142
134
  - lib/sunspot/query/geo.rb
143
135
  - lib/sunspot/query/geofilt.rb
136
+ - lib/sunspot/query/group.rb
137
+ - lib/sunspot/query/group_query.rb
144
138
  - lib/sunspot/query/highlighting.rb
145
139
  - lib/sunspot/query/join.rb
146
140
  - lib/sunspot/query/more_like_this.rb
@@ -171,6 +165,7 @@ files:
171
165
  - lib/sunspot/search/more_like_this_search.rb
172
166
  - lib/sunspot/search/paginated_collection.rb
173
167
  - lib/sunspot/search/query_facet.rb
168
+ - lib/sunspot/search/query_group.rb
174
169
  - lib/sunspot/search/range_facet.rb
175
170
  - lib/sunspot/search/standard_search.rb
176
171
  - lib/sunspot/search/stats_facet.rb
@@ -254,6 +249,7 @@ files:
254
249
  - spec/helpers/mock_session_helper.rb
255
250
  - spec/helpers/query_helper.rb
256
251
  - spec/helpers/search_helper.rb
252
+ - spec/integration/atomic_updates_spec.rb
257
253
  - spec/integration/dynamic_fields_spec.rb
258
254
  - spec/integration/faceting_spec.rb
259
255
  - spec/integration/field_grouping_spec.rb
@@ -289,6 +285,7 @@ files:
289
285
  homepage: http://outoftime.github.com/sunspot
290
286
  licenses:
291
287
  - MIT
288
+ metadata: {}
292
289
  post_install_message:
293
290
  rdoc_options:
294
291
  - "--webcvs=http://github.com/outoftime/sunspot/tree/master/%s"
@@ -299,22 +296,20 @@ rdoc_options:
299
296
  require_paths:
300
297
  - lib
301
298
  required_ruby_version: !ruby/object:Gem::Requirement
302
- none: false
303
299
  requirements:
304
300
  - - ">="
305
301
  - !ruby/object:Gem::Version
306
302
  version: '0'
307
303
  required_rubygems_version: !ruby/object:Gem::Requirement
308
- none: false
309
304
  requirements:
310
305
  - - ">="
311
306
  - !ruby/object:Gem::Version
312
307
  version: '0'
313
308
  requirements: []
314
309
  rubyforge_project: sunspot
315
- rubygems_version: 1.8.25
310
+ rubygems_version: 2.5.0
316
311
  signing_key:
317
- specification_version: 3
312
+ specification_version: 4
318
313
  summary: Library for expressive, powerful interaction with the Solr search engine
319
314
  test_files:
320
315
  - spec/api/adapters_spec.rb
@@ -378,6 +373,7 @@ test_files:
378
373
  - spec/helpers/mock_session_helper.rb
379
374
  - spec/helpers/query_helper.rb
380
375
  - spec/helpers/search_helper.rb
376
+ - spec/integration/atomic_updates_spec.rb
381
377
  - spec/integration/dynamic_fields_spec.rb
382
378
  - spec/integration/faceting_spec.rb
383
379
  - spec/integration/field_grouping_spec.rb
@@ -1,57 +0,0 @@
1
- module Sunspot
2
- module DSL
3
- class FieldGroup
4
- def initialize(setup, group)
5
- @setup, @group = setup, group
6
- end
7
-
8
- #
9
- # Sets the number of results (documents) to return for each group.
10
- # Defaults to 1.
11
- #
12
- def limit(num)
13
- @group.limit = num
14
- end
15
-
16
- #
17
- # If set, facet counts are based on the most relevant document of
18
- # each group matching the query.
19
- #
20
- # Supported in Solr 3.4 and above.
21
- #
22
- # ==== Example
23
- #
24
- # Sunspot.search(Post) do
25
- # group :title do
26
- # truncate
27
- # end
28
- #
29
- # facet :title, :extra => :any
30
- # end
31
- #
32
- def truncate
33
- @group.truncate = true
34
- end
35
-
36
- # Specify the order that results should be returned in. This method can
37
- # be called multiple times; precedence will be in the order given.
38
- #
39
- # ==== Parameters
40
- #
41
- # field_name<Symbol>:: the field to use for ordering
42
- # direction<Symbol>:: :asc or :desc (default :asc)
43
- #
44
- def order_by(field_name, direction = nil)
45
- sort =
46
- if special = Sunspot::Query::Sort.special(field_name)
47
- special.new(direction)
48
- else
49
- Sunspot::Query::Sort::FieldSort.new(
50
- @setup.field(field_name), direction
51
- )
52
- end
53
- @group.add_sort(sort)
54
- end
55
- end
56
- end
57
- end