sunspot 2.2.7 → 2.5.0

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 (117) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/Appraisals +7 -0
  5. data/Gemfile +0 -8
  6. data/lib/sunspot/adapters.rb +4 -1
  7. data/lib/sunspot/configuration.rb +1 -0
  8. data/lib/sunspot/data_extractor.rb +36 -6
  9. data/lib/sunspot/dsl/field_query.rb +11 -0
  10. data/lib/sunspot/dsl/field_stats.rb +7 -0
  11. data/lib/sunspot/dsl/fields.rb +16 -0
  12. data/lib/sunspot/dsl/group.rb +10 -0
  13. data/lib/sunspot/dsl/scope.rb +23 -18
  14. data/lib/sunspot/field.rb +11 -0
  15. data/lib/sunspot/field_factory.rb +6 -2
  16. data/lib/sunspot/query/abstract_json_field_facet.rb +70 -0
  17. data/lib/sunspot/query/bbox.rb +5 -1
  18. data/lib/sunspot/query/date_field_json_facet.rb +25 -0
  19. data/lib/sunspot/query/field_json_facet.rb +19 -0
  20. data/lib/sunspot/query/field_stats.rb +35 -2
  21. data/lib/sunspot/query/group.rb +4 -5
  22. data/lib/sunspot/query/join.rb +2 -4
  23. data/lib/sunspot/query/range_json_facet.rb +28 -0
  24. data/lib/sunspot/query/restriction.rb +19 -4
  25. data/lib/sunspot/query.rb +3 -3
  26. data/lib/sunspot/schema.rb +10 -2
  27. data/lib/sunspot/search/abstract_search.rb +14 -1
  28. data/lib/sunspot/search/field_json_facet.rb +33 -0
  29. data/lib/sunspot/search/hit.rb +6 -1
  30. data/lib/sunspot/search/hit_enumerable.rb +4 -1
  31. data/lib/sunspot/search/json_facet_row.rb +40 -0
  32. data/lib/sunspot/search/json_facet_stats.rb +23 -0
  33. data/lib/sunspot/search/standard_search.rb +2 -3
  34. data/lib/sunspot/search/stats_json_row.rb +82 -0
  35. data/lib/sunspot/search/stats_row.rb +3 -1
  36. data/lib/sunspot/search.rb +4 -3
  37. data/lib/sunspot/session.rb +13 -5
  38. data/lib/sunspot/setup.rb +31 -0
  39. data/lib/sunspot/util.rb +23 -0
  40. data/lib/sunspot/version.rb +1 -1
  41. data/spec/api/adapters_spec.rb +32 -19
  42. data/spec/api/batcher_spec.rb +15 -15
  43. data/spec/api/binding_spec.rb +3 -3
  44. data/spec/api/class_set_spec.rb +3 -3
  45. data/spec/api/data_extractor_spec.rb +39 -0
  46. data/spec/api/hit_enumerable_spec.rb +32 -9
  47. data/spec/api/indexer/attributes_spec.rb +31 -31
  48. data/spec/api/indexer/batch_spec.rb +8 -7
  49. data/spec/api/indexer/dynamic_fields_spec.rb +8 -8
  50. data/spec/api/indexer/fixed_fields_spec.rb +12 -12
  51. data/spec/api/indexer/fulltext_spec.rb +8 -8
  52. data/spec/api/indexer/removal_spec.rb +14 -14
  53. data/spec/api/indexer_spec.rb +2 -2
  54. data/spec/api/query/advanced_manipulation_examples.rb +3 -3
  55. data/spec/api/query/connectives_examples.rb +26 -14
  56. data/spec/api/query/dsl_spec.rb +17 -9
  57. data/spec/api/query/dynamic_fields_examples.rb +18 -18
  58. data/spec/api/query/faceting_examples.rb +62 -62
  59. data/spec/api/query/fulltext_examples.rb +63 -58
  60. data/spec/api/query/function_spec.rb +26 -26
  61. data/spec/api/query/geo_examples.rb +6 -6
  62. data/spec/api/query/group_spec.rb +6 -6
  63. data/spec/api/query/highlighting_examples.rb +26 -26
  64. data/spec/api/query/join_spec.rb +2 -2
  65. data/spec/api/query/more_like_this_spec.rb +29 -29
  66. data/spec/api/query/ordering_pagination_examples.rb +25 -25
  67. data/spec/api/query/scope_examples.rb +39 -39
  68. data/spec/api/query/spatial_examples.rb +3 -3
  69. data/spec/api/query/spellcheck_examples.rb +3 -3
  70. data/spec/api/query/standard_spec.rb +1 -1
  71. data/spec/api/query/stats_examples.rb +8 -8
  72. data/spec/api/query/text_field_scoping_examples.rb +5 -5
  73. data/spec/api/query/types_spec.rb +4 -4
  74. data/spec/api/search/cursor_paginated_collection_spec.rb +12 -12
  75. data/spec/api/search/dynamic_fields_spec.rb +4 -4
  76. data/spec/api/search/faceting_spec.rb +55 -52
  77. data/spec/api/search/highlighting_spec.rb +7 -7
  78. data/spec/api/search/hits_spec.rb +43 -29
  79. data/spec/api/search/paginated_collection_spec.rb +18 -18
  80. data/spec/api/search/results_spec.rb +13 -13
  81. data/spec/api/search/search_spec.rb +3 -3
  82. data/spec/api/search/stats_spec.rb +10 -10
  83. data/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +19 -18
  84. data/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +9 -9
  85. data/spec/api/session_proxy/master_slave_session_proxy_spec.rb +10 -6
  86. data/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +10 -10
  87. data/spec/api/session_proxy/sharding_session_proxy_spec.rb +14 -13
  88. data/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +2 -2
  89. data/spec/api/session_proxy/spec_helper.rb +1 -1
  90. data/spec/api/session_proxy/thread_local_session_proxy_spec.rb +9 -5
  91. data/spec/api/session_spec.rb +42 -42
  92. data/spec/api/sunspot_spec.rb +7 -4
  93. data/spec/helpers/integration_helper.rb +1 -0
  94. data/spec/integration/atomic_updates_spec.rb +25 -11
  95. data/spec/integration/dynamic_fields_spec.rb +10 -10
  96. data/spec/integration/faceting_spec.rb +252 -39
  97. data/spec/integration/field_grouping_spec.rb +35 -16
  98. data/spec/integration/field_lists_spec.rb +57 -0
  99. data/spec/integration/geospatial_spec.rb +34 -8
  100. data/spec/integration/highlighting_spec.rb +5 -5
  101. data/spec/integration/indexing_spec.rb +5 -5
  102. data/spec/integration/join_spec.rb +45 -0
  103. data/spec/integration/keyword_search_spec.rb +47 -45
  104. data/spec/integration/local_search_spec.rb +4 -4
  105. data/spec/integration/more_like_this_spec.rb +7 -7
  106. data/spec/integration/scoped_search_spec.rb +108 -108
  107. data/spec/integration/spellcheck_spec.rb +52 -7
  108. data/spec/integration/stats_spec.rb +54 -13
  109. data/spec/integration/stored_fields_spec.rb +1 -1
  110. data/spec/integration/test_pagination.rb +4 -4
  111. data/spec/integration/unicode_spec.rb +1 -1
  112. data/spec/mocks/adapters.rb +33 -0
  113. data/spec/mocks/photo.rb +14 -4
  114. data/spec/mocks/post.rb +9 -1
  115. data/spec/spec_helper.rb +11 -10
  116. data/sunspot.gemspec +3 -1
  117. metadata +49 -6
@@ -3,45 +3,86 @@ require File.expand_path('../spec_helper', File.dirname(__FILE__))
3
3
  describe 'search stats' do
4
4
  before :each do
5
5
  Sunspot.remove_all
6
- @posts = Post.new(:ratings_average => 4.0, :blog_id => 2),
7
- Post.new(:ratings_average => 4.0, :blog_id => 1),
8
- Post.new(:ratings_average => 3.0, :blog_id => 2)
6
+ @posts = Post.new(:ratings_average => 4.0, :author_name => 'plinio', :blog_id => 2),
7
+ Post.new(:ratings_average => 4.0, :author_name => 'caio', :blog_id => 1),
8
+ Post.new(:ratings_average => 3.0, :author_name => 'sempronio', :blog_id => 2)
9
9
  Sunspot.index!(@posts)
10
10
  end
11
11
 
12
12
  it 'returns minimum stats' do
13
- Sunspot.search(Post) do
13
+ expect(Sunspot.search(Post) do
14
14
  stats :average_rating
15
- end.stats(:average_rating).min.should == 3.0
15
+ end.stats(:average_rating).min).to eq(3.0)
16
16
  end
17
17
 
18
18
  it 'returns maximum stats' do
19
- Sunspot.search(Post) do
19
+ expect(Sunspot.search(Post) do
20
20
  stats :average_rating
21
- end.stats(:average_rating).max.should == 4.0
21
+ end.stats(:average_rating).max).to eq(4.0)
22
22
  end
23
23
 
24
24
  it 'returns count stats' do
25
- Sunspot.search(Post) do
25
+ expect(Sunspot.search(Post) do
26
26
  stats :average_rating
27
- end.stats(:average_rating).count.should == 3
27
+ end.stats(:average_rating).count).to eq(3)
28
28
  end
29
29
 
30
30
  describe 'facets' do
31
31
  it 'returns minimum on facet row with two blog ids' do
32
- Sunspot.search(Post) do
32
+ expect(Sunspot.search(Post) do
33
33
  stats :average_rating do
34
34
  facet :blog_id
35
35
  end
36
- end.stats(:average_rating).facet(:blog_id).rows[1].min.should == 3.0
36
+ end.stats(:average_rating).facet(:blog_id).rows[1].min).to eq(3.0)
37
37
  end
38
38
 
39
39
  it 'returns maximum on facet row with two blog ids' do
40
- Sunspot.search(Post) do
40
+ expect(Sunspot.search(Post) do
41
41
  stats :average_rating do
42
42
  facet :blog_id
43
43
  end
44
- end.stats(:average_rating).facet(:blog_id).rows[1].max.should == 4.0
44
+ end.stats(:average_rating).facet(:blog_id).rows[1].max).to eq(4.0)
45
45
  end
46
46
  end
47
+
48
+ describe 'json facets' do
49
+ it 'returns minimum on facet row with two blog ids' do
50
+ expect(Sunspot.search(Post) do
51
+ stats :average_rating, sort: :min do
52
+ json_facet :blog_id
53
+ end
54
+ end.json_facet_stats(:blog_id).rows[1].min).to eq(3.0)
55
+ end
56
+
57
+ it 'returns maximum on facet row with two blog ids' do
58
+ expect(Sunspot.search(Post) do
59
+ stats :average_rating, sort: :max do
60
+ json_facet :blog_id
61
+ end
62
+ end.json_facet_stats(:blog_id).rows[1].max).to eq(4.0)
63
+ end
64
+
65
+ it 'returns only sum' do
66
+ search = Sunspot.search(Post) do
67
+ stats :average_rating, stats: [:sum] do
68
+ json_facet :blog_id
69
+ end
70
+ end
71
+ expect(search.json_facet_stats(:blog_id).rows[1].max).to eq(nil)
72
+ expect(search.json_facet_stats(:blog_id).rows[1].min).to eq(nil)
73
+ expect(search.json_facet_stats(:blog_id).rows[1].avg).to eq(nil)
74
+ expect(search.json_facet_stats(:blog_id).rows[1].sumsq).to eq(nil)
75
+ expect(search.json_facet_stats(:blog_id).rows[1].sum).to eq(4.0)
76
+ end
77
+
78
+ it 'works with nested facets' do
79
+ search = Sunspot.search(Post) do
80
+ stats :average_rating, sort: :min do
81
+ json_facet(:blog_id, nested: { field: :author_name, limit: 3, nested: { field: :average_rating } } )
82
+ end
83
+ end
84
+ expect(search.json_facet_stats(:blog_id).rows[1].nested.first.nested.first.min).to eq(4.0)
85
+ end
86
+
87
+ end
47
88
  end
@@ -7,6 +7,6 @@ describe 'stored fields' do
7
7
  end
8
8
 
9
9
  it 'should return stored fields' do
10
- Sunspot.search(Post).hits.first.stored(:title).should == 'A Title'
10
+ expect(Sunspot.search(Post).hits.first.stored(:title)).to eq('A Title')
11
11
  end
12
12
  end
@@ -11,7 +11,7 @@ describe 'pagination' do
11
11
 
12
12
  it 'should return all by default' do
13
13
  results = Sunspot.search(Post) { order_by :blog_id }.results
14
- results.should == @posts
14
+ expect(results).to eq(@posts)
15
15
  end
16
16
 
17
17
  it 'should return first page of 10' do
@@ -19,7 +19,7 @@ describe 'pagination' do
19
19
  order_by :blog_id
20
20
  paginate :page => 1, :per_page => 10
21
21
  end.results
22
- results.should == @posts[0,10]
22
+ expect(results).to eq(@posts[0,10])
23
23
  end
24
24
 
25
25
  it 'should return second page of 10' do
@@ -27,7 +27,7 @@ describe 'pagination' do
27
27
  order_by :blog_id
28
28
  paginate :page => 2, :per_page => 10
29
29
  end.results
30
- results.should == @posts[10,10]
30
+ expect(results).to eq(@posts[10,10])
31
31
  end
32
32
 
33
33
  it 'should return pages with offsets' do
@@ -38,6 +38,6 @@ describe 'pagination' do
38
38
 
39
39
  # page 1 is 3, 4, 5, 6, 7
40
40
  # page 2 is 8, 9, 10, 11, 12
41
- results.should == @posts[8,5]
41
+ expect(results).to eq(@posts[8,5])
42
42
  end
43
43
  end
@@ -10,6 +10,6 @@ describe "unicode characters" do
10
10
  end
11
11
 
12
12
  it "correctly retrieves the string as UTF-8" do
13
- Sunspot.search(Post).hits.first.stored(:title).should == "Híghgrøøvé"
13
+ expect(Sunspot.search(Post).hits.first.stored(:title)).to eq("Híghgrøøvé")
14
14
  end
15
15
  end
@@ -7,7 +7,40 @@ end
7
7
  class UnseenModel < AbstractModel
8
8
  end
9
9
 
10
+ class ModelWithPrefixId < AbstractModel
11
+ def id
12
+ 1
13
+ end
14
+ end
15
+
16
+ Sunspot.setup(ModelWithPrefixId) do
17
+ id_prefix { "USERDATA!" }
18
+ end
19
+
20
+ class ModelWithNestedPrefixId < AbstractModel
21
+ def id
22
+ 1
23
+ end
24
+ end
25
+
26
+ Sunspot.setup(ModelWithNestedPrefixId) do
27
+ id_prefix { "USER!USERDATA!" }
28
+ end
29
+
30
+ class ModelWithoutPrefixId < AbstractModel
31
+ def id
32
+ 1
33
+ end
34
+ end
35
+
36
+ Sunspot.setup(ModelWithoutPrefixId) do
37
+ end
38
+
39
+
10
40
  class AbstractModelInstanceAdapter < Sunspot::Adapters::InstanceAdapter
41
+ def id
42
+ @instance.id
43
+ end
11
44
  end
12
45
 
13
46
  class AbstractModelDataAccessor < Sunspot::Adapters::DataAccessor
data/spec/mocks/photo.rb CHANGED
@@ -13,6 +13,15 @@ Sunspot.setup(Photo) do
13
13
  time :created_at, :trie => true
14
14
  end
15
15
 
16
+ class Picture < MockRecord
17
+ attr_accessor :description, :photo_container_id
18
+ end
19
+
20
+ Sunspot.setup(Picture) do
21
+ text :description
22
+ integer :photo_container_id
23
+ end
24
+
16
25
  class PhotoContainer < MockRecord
17
26
  attr_accessor :description
18
27
 
@@ -25,8 +34,9 @@ Sunspot.setup(PhotoContainer) do
25
34
  integer :id
26
35
  text :description, :default_boost => 1.2
27
36
 
28
- join(:caption, :target => Photo, :type => :string, :join => { :from => :photo_container_id, :to => :id })
29
- join(:photo_rating, :target => Photo, :type => :trie_float, :join => { :from => :photo_container_id, :to => :id }, :as => 'average_rating_ft')
30
- join(:caption, :target => Photo, :type => :text, :join => { :from => :photo_container_id, :to => :id })
31
- join(:description, :prefix => "photo", :target => Photo, :type => :text, :join => { :from => :photo_container_id, :to => :id })
37
+ join(:caption, :target => Photo, :type => :string, :join => { :from => :photo_container_id, :to => :id })
38
+ join(:photo_rating, :target => Photo, :type => :trie_float, :join => { :from => :photo_container_id, :to => :id }, :as => 'average_rating_ft')
39
+ join(:caption, :target => Photo, :type => :text, :join => { :from => :photo_container_id, :to => :id })
40
+ join(:description, :target => Photo, :type => :text, :join => { :from => :photo_container_id, :to => :id }, :prefix => "photo")
41
+ join(:description, :target => Picture, :type => :text, :join => { :from => :photo_container_id, :to => :id }, :prefix => "picture")
32
42
  end
data/spec/mocks/post.rb CHANGED
@@ -37,12 +37,16 @@ end
37
37
 
38
38
  Sunspot.setup(Post) do
39
39
  text :title, :boost => 2
40
+ text :text_array, :boost => 3 do
41
+ [title, title]
42
+ end
40
43
  text :body, :stored => true, :more_like_this => true
41
44
  text :backwards_title do
42
45
  title.reverse if title
43
46
  end
44
47
  text :tags, :more_like_this => true
45
48
  string :title, :stored => true
49
+ string :author_name
46
50
  integer :blog_id, :references => Blog
47
51
  integer :category_ids, :multiple => true
48
52
  float :average_rating, :using => :ratings_average, :trie => true
@@ -85,7 +89,11 @@ Sunspot.setup(Post) do
85
89
 
86
90
  string :legacy_array, :as => :legacy_array_field_sm, :multiple => true do
87
91
  ['first string', 'second string']
88
- end
92
+ end
93
+
94
+ string :tag_list, :multiple => true, :stored => true do
95
+ tags
96
+ end
89
97
  end
90
98
 
91
99
  class PhotoPost < Post
data/spec/spec_helper.rb CHANGED
@@ -13,27 +13,28 @@ end
13
13
  require File.join(File.dirname(__FILE__), 'ext')
14
14
 
15
15
  RSpec.configure do |config|
16
- # Run only examples with :focus => true
17
- config.filter_run :focus => true
16
+ config.filter_run :focus
18
17
  config.run_all_when_everything_filtered = true
19
18
 
19
+ # Run specs in random order to surface order dependencies. If you find an
20
+ # order dependency and want to debug it, you can fix the order by providing
21
+ # the seed, which is printed after each run.
22
+ # --seed 1234
23
+ config.order = 'random'
24
+
20
25
  # Mock session available to all spec/api tests
21
- config.include MockSessionHelper,
22
- :type => :api,
23
- :example_group => {:file_path => /spec[\\\/]api/}
26
+ config.include MockSessionHelper, type: :api, file_path: /spec[\\\/]api/
24
27
 
25
28
  # Real Solr instance is available to integration tests
26
- config.include IntegrationHelper,
27
- :type => :integration,
28
- :example_group => {:file_path => /spec[\\\/]integration/}
29
+ config.include IntegrationHelper, type: :integration, file_path: /spec[\\\/]integration/
29
30
 
30
31
  # Nested under spec/api
31
32
  [:indexer, :query, :search].each do |spec_type|
32
33
  helper_name = "#{spec_type}_helper"
33
34
 
34
35
  config.include Sunspot::Util.full_const_get(Sunspot::Util.camel_case(helper_name)),
35
- :type => spec_type,
36
- :example_group => {:file_path => /spec[\\\/]api[\\\/]#{spec_type}/}
36
+ :type => spec_type,
37
+ :file_path => /spec[\\\/]api[\\\/]#{spec_type}/
37
38
  end
38
39
  end
39
40
 
data/sunspot.gemspec CHANGED
@@ -30,7 +30,9 @@ Gem::Specification.new do |s|
30
30
  s.add_dependency 'rsolr', '>= 1.1.1', '< 3'
31
31
  s.add_dependency 'pr_geohash', '~>1.0'
32
32
 
33
- s.add_development_dependency 'rspec', '~>2.6.0'
33
+ s.add_development_dependency 'rake', '< 12.3'
34
+ s.add_development_dependency 'rspec', '~> 3.7'
35
+ s.add_development_dependency 'appraisal', '2.2.0'
34
36
 
35
37
  s.rdoc_options << '--webcvs=http://github.com/outoftime/sunspot/tree/master/%s' <<
36
38
  '--title' << 'Sunspot - Solr-powered search for Ruby objects - API Documentation' <<
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.7
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Brown
@@ -30,7 +30,7 @@ authors:
30
30
  autorequire:
31
31
  bindir: bin
32
32
  cert_chain: []
33
- date: 2016-10-26 00:00:00.000000000 Z
33
+ date: 2019-07-12 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rsolr
@@ -66,20 +66,48 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '12.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '12.3'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 2.6.0
89
+ version: '3.7'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 2.6.0
96
+ version: '3.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: appraisal
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 2.2.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 2.2.0
83
111
  description: |2
84
112
  Sunspot is a library providing a powerful, all-ruby API for the Solr search engine. Sunspot manages the configuration of persistent
85
113
  Ruby classes for search and indexing and exposes Solr's most powerful features through a collection of DSLs. Complex search operations
@@ -91,6 +119,8 @@ extensions: []
91
119
  extra_rdoc_files: []
92
120
  files:
93
121
  - ".gitignore"
122
+ - ".rspec"
123
+ - Appraisals
94
124
  - Gemfile
95
125
  - History.txt
96
126
  - LICENSE
@@ -128,14 +158,17 @@ files:
128
158
  - lib/sunspot/query.rb
129
159
  - lib/sunspot/query/abstract_field_facet.rb
130
160
  - lib/sunspot/query/abstract_fulltext.rb
161
+ - lib/sunspot/query/abstract_json_field_facet.rb
131
162
  - lib/sunspot/query/bbox.rb
132
163
  - lib/sunspot/query/boost_query.rb
133
164
  - lib/sunspot/query/common_query.rb
134
165
  - lib/sunspot/query/composite_fulltext.rb
135
166
  - lib/sunspot/query/connective.rb
136
167
  - lib/sunspot/query/date_field_facet.rb
168
+ - lib/sunspot/query/date_field_json_facet.rb
137
169
  - lib/sunspot/query/dismax.rb
138
170
  - lib/sunspot/query/field_facet.rb
171
+ - lib/sunspot/query/field_json_facet.rb
139
172
  - lib/sunspot/query/field_list.rb
140
173
  - lib/sunspot/query/field_stats.rb
141
174
  - lib/sunspot/query/filter.rb
@@ -151,6 +184,7 @@ files:
151
184
  - lib/sunspot/query/pagination.rb
152
185
  - lib/sunspot/query/query_facet.rb
153
186
  - lib/sunspot/query/range_facet.rb
187
+ - lib/sunspot/query/range_json_facet.rb
154
188
  - lib/sunspot/query/restriction.rb
155
189
  - lib/sunspot/query/scope.rb
156
190
  - lib/sunspot/query/sort.rb
@@ -166,11 +200,14 @@ files:
166
200
  - lib/sunspot/search/facet_row.rb
167
201
  - lib/sunspot/search/field_facet.rb
168
202
  - lib/sunspot/search/field_group.rb
203
+ - lib/sunspot/search/field_json_facet.rb
169
204
  - lib/sunspot/search/field_stats.rb
170
205
  - lib/sunspot/search/group.rb
171
206
  - lib/sunspot/search/highlight.rb
172
207
  - lib/sunspot/search/hit.rb
173
208
  - lib/sunspot/search/hit_enumerable.rb
209
+ - lib/sunspot/search/json_facet_row.rb
210
+ - lib/sunspot/search/json_facet_stats.rb
174
211
  - lib/sunspot/search/more_like_this_search.rb
175
212
  - lib/sunspot/search/paginated_collection.rb
176
213
  - lib/sunspot/search/query_facet.rb
@@ -178,6 +215,7 @@ files:
178
215
  - lib/sunspot/search/range_facet.rb
179
216
  - lib/sunspot/search/standard_search.rb
180
217
  - lib/sunspot/search/stats_facet.rb
218
+ - lib/sunspot/search/stats_json_row.rb
181
219
  - lib/sunspot/search/stats_row.rb
182
220
  - lib/sunspot/session.rb
183
221
  - lib/sunspot/session_proxy.rb
@@ -201,6 +239,7 @@ files:
201
239
  - spec/api/batcher_spec.rb
202
240
  - spec/api/binding_spec.rb
203
241
  - spec/api/class_set_spec.rb
242
+ - spec/api/data_extractor_spec.rb
204
243
  - spec/api/hit_enumerable_spec.rb
205
244
  - spec/api/indexer/attributes_spec.rb
206
245
  - spec/api/indexer/batch_spec.rb
@@ -262,9 +301,11 @@ files:
262
301
  - spec/integration/dynamic_fields_spec.rb
263
302
  - spec/integration/faceting_spec.rb
264
303
  - spec/integration/field_grouping_spec.rb
304
+ - spec/integration/field_lists_spec.rb
265
305
  - spec/integration/geospatial_spec.rb
266
306
  - spec/integration/highlighting_spec.rb
267
307
  - spec/integration/indexing_spec.rb
308
+ - spec/integration/join_spec.rb
268
309
  - spec/integration/keyword_search_spec.rb
269
310
  - spec/integration/local_search_spec.rb
270
311
  - spec/integration/more_like_this_spec.rb
@@ -315,8 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
356
  - !ruby/object:Gem::Version
316
357
  version: '0'
317
358
  requirements: []
318
- rubyforge_project: sunspot
319
- rubygems_version: 2.5.0
359
+ rubygems_version: 3.0.2
320
360
  signing_key:
321
361
  specification_version: 4
322
362
  summary: Library for expressive, powerful interaction with the Solr search engine
@@ -325,6 +365,7 @@ test_files:
325
365
  - spec/api/batcher_spec.rb
326
366
  - spec/api/binding_spec.rb
327
367
  - spec/api/class_set_spec.rb
368
+ - spec/api/data_extractor_spec.rb
328
369
  - spec/api/hit_enumerable_spec.rb
329
370
  - spec/api/indexer/attributes_spec.rb
330
371
  - spec/api/indexer/batch_spec.rb
@@ -386,9 +427,11 @@ test_files:
386
427
  - spec/integration/dynamic_fields_spec.rb
387
428
  - spec/integration/faceting_spec.rb
388
429
  - spec/integration/field_grouping_spec.rb
430
+ - spec/integration/field_lists_spec.rb
389
431
  - spec/integration/geospatial_spec.rb
390
432
  - spec/integration/highlighting_spec.rb
391
433
  - spec/integration/indexing_spec.rb
434
+ - spec/integration/join_spec.rb
392
435
  - spec/integration/keyword_search_spec.rb
393
436
  - spec/integration/local_search_spec.rb
394
437
  - spec/integration/more_like_this_spec.rb