sunspot_stats 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,6 @@ module Sunspot
17
17
  stat = @query.add_stat(Sunspot::Query::FieldStat.new(field, options))
18
18
  @search.add_field_stat(field, options)
19
19
  end
20
- end
20
+ end
21
21
  end
22
22
  end
@@ -23,7 +23,7 @@ module Sunspot
23
23
  :stats => 'true',
24
24
  :"stats.field" => @field.indexed_name
25
25
  }
26
- params.merge!({:"stats.facet" => @options[:facet].indexed_name}) if !@options[:facet].nil?
26
+ params.merge!({:"stats.facet" => @options[:facet].indexed_name}) if !@options[:facet].nil?
27
27
  params
28
28
  end
29
29
  end
@@ -11,7 +11,10 @@ module Sunspot
11
11
  end
12
12
 
13
13
  def rows
14
+ #sort options :count or :stat_field
15
+ @options[:sort] ||= :count
14
16
  @options[:type] ||= "sum"
17
+ @options[:limit] ||= -1
15
18
  @sort = false
16
19
  @rows ||=
17
20
  begin
@@ -28,17 +31,18 @@ module Sunspot
28
31
  rows = []
29
32
 
30
33
  data.collect do |stat, value|
31
- rows << StatRow.new(stat, value[@options[:type]], self)
34
+ rows << StatRow.new(stat, value[@options[:type]], value, self)
32
35
  end
33
36
 
34
- if @options[:sort] == :type
35
- rows.sort! { |lrow, rrow| rrow.count <=> lrow.count }
37
+ if @options[:sort] == :count
38
+ rows.sort! { |lrow, rrow| rrow.value <=> lrow.value }
36
39
  else
37
40
  rows.sort! { |lrow, rrow| lrow.stat_field <=> rrow.stat_field }
38
41
  end if @sort
39
- rows
42
+ return rows.empty? ? [] : rows[0..@options[:limit]]
40
43
  rescue Exception => e
41
44
  puts "Error: #{e}"
45
+ return []
42
46
  end
43
47
  end
44
48
  end
@@ -1,11 +1,11 @@
1
1
  module Sunspot
2
2
  module Search
3
3
  class StatRow
4
- attr_reader :stat_field, :value
4
+ attr_reader :stat_field, :value, :all_values
5
5
  attr_writer :instance #:nodoc:
6
6
 
7
- def initialize(stat_field, value, stat) #:nodoc:
8
- @stat_field, @value, @stat = stat_field, value, stat
7
+ def initialize(stat_field, value, all_values, stat) #:nodoc:
8
+ @stat_field, @value, @all_values, @stat = stat_field, value, all_values, stat
9
9
  end
10
10
 
11
11
  #
@@ -21,7 +21,7 @@ module Sunspot
21
21
  end
22
22
 
23
23
  def inspect
24
- "<Sunspot::Search::StatRow:#{stat_field.inspect} (#{value})>"
24
+ "<Sunspot::Search::StatRow:#{stat_field.inspect} (#{value} - #{all_values})>"
25
25
  end
26
26
  end
27
27
  end
@@ -39,7 +39,18 @@ module Sunspot
39
39
  end
40
40
 
41
41
  def stat_response #:nodoc:
42
- @solr_result['stats']
42
+ @solr_result['stats']["stats_fields"].each_pair do |k, value|
43
+ if value && value.key?("facets")
44
+ value["facets"].each_pair do |k1, value1|
45
+ value1.each_pair do |k2, value2|
46
+ if @solr_result['stats']['stats_fields'][k]['facets'][k1][k2]['mean'].to_s == 'NaN'
47
+ @solr_result['stats']['stats_fields'][k]['facets'][k1][k2]['mean'] = 0.0
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ @solr_result['stats']||[]
43
54
  end
44
55
 
45
56
  def add_field_stat(field, options = {}) #:nodoc:
@@ -1,4 +1,3 @@
1
1
  module SunspotStats
2
- VERSION = "0.0.5
3
- "
2
+ VERSION = "0.0.6"
4
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
  gem.version = SunspotStats::VERSION
20
20
 
21
- gem.add_dependency "sunspot", "~> 2.0.0.pre.120417"
21
+ gem.add_dependency "sunspot", "~> 2.0.0"
22
22
  gem.add_development_dependency "rspec"
23
23
 
24
24
  gem.rdoc_options << '--webcvs=http://github.com/giovannelli/sunspot_stats/tree/master/%s' <<
metadata CHANGED
@@ -1,65 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sunspot_stats
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 5
10
- version: 0.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - duccio giovannelli
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-07-23 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-10-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: sunspot
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 1923675179
30
- segments:
31
- - 2
32
- - 0
33
- - 0
34
- - pre
35
- - 120417
36
- version: 2.0.0.pre.120417
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.0
37
22
  type: :runtime
38
- version_requirements: *id001
39
- - !ruby/object:Gem::Dependency
40
- name: rspec
41
23
  prerelease: false
42
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
43
25
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- hash: 3
48
- segments:
49
- - 0
50
- version: "0"
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
51
38
  type: :development
52
- version_requirements: *id002
53
- description: " Sunspot is a library providing a powerful, all-ruby API for the Solr search engine. This gem extend sunspot adding the \n statsComponent feature, which returns simple statistics for indexed numeric fields within the DocSet. Usually Suspot use the dismax\n for searches, here we extend to edismax to manage also boolean logic searches.\n"
54
- email:
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: ! " Sunspot is a library providing a powerful, all-ruby API for
47
+ the Solr search engine. This gem extend sunspot adding the \n statsComponent
48
+ feature, which returns simple statistics for indexed numeric fields within the DocSet.
49
+ Usually Suspot use the dismax\n for searches, here we extend to edismax to
50
+ manage also boolean logic searches.\n"
51
+ email:
55
52
  - giovannelli@extendi.it
56
53
  executables: []
57
-
58
54
  extensions: []
59
-
60
55
  extra_rdoc_files: []
61
-
62
- files:
56
+ files:
63
57
  - .gitignore
64
58
  - Gemfile
65
59
  - LICENSE
@@ -92,45 +86,36 @@ files:
92
86
  - spec/mocks/super_class.rb
93
87
  - spec/spec_helper.rb
94
88
  - sunspot_stats.gemspec
95
- has_rdoc: true
96
89
  homepage: https://github.com/giovannelli/sunspot_stats
97
90
  licenses: []
98
-
99
91
  post_install_message:
100
- rdoc_options:
92
+ rdoc_options:
101
93
  - --webcvs=http://github.com/giovannelli/sunspot_stats/tree/master/%s
102
94
  - --title
103
95
  - Sunspot Stat - StatsComponent for sunspot - API Documentation
104
96
  - --main
105
97
  - README.rdoc
106
- require_paths:
98
+ require_paths:
107
99
  - lib
108
- required_ruby_version: !ruby/object:Gem::Requirement
100
+ required_ruby_version: !ruby/object:Gem::Requirement
109
101
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
115
- - 0
116
- version: "0"
117
- required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
107
  none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- hash: 3
123
- segments:
124
- - 0
125
- version: "0"
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
126
112
  requirements: []
127
-
128
113
  rubyforge_project:
129
- rubygems_version: 1.4.2
114
+ rubygems_version: 1.8.23
130
115
  signing_key:
131
116
  specification_version: 3
132
117
  summary: Added the statsComponent to sunspot
133
- test_files:
118
+ test_files:
134
119
  - spec/api/query/spec_helper.rb
135
120
  - spec/api/query/stats_spec.rb
136
121
  - spec/api/search/spec_helper.rb
@@ -149,3 +134,4 @@ test_files:
149
134
  - spec/mocks/mock_record.rb
150
135
  - spec/mocks/super_class.rb
151
136
  - spec/spec_helper.rb
137
+ has_rdoc: