sunspot_stats 0.0.6 → 0.0.7

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.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Sunspot Stats
2
2
 
3
- Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. I use the latest version [2.0.0.pre.120417](https://rubygems.org/gems/sunspot/versions/2.0.0.pre.120417) but i need the statsComponent in order to get the sum on a given indexed field.
3
+ Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. I use the latest version [2.1.0](http://rubygems.org/gems/sunspot/versions/2.1.0) but i need the statsComponent in order to get the sum (min, max, count, sumOfSquares, mean, stddev) on a given indexed field.
4
4
 
5
5
  ## Installation
6
6
 
@@ -44,16 +44,16 @@ If you enable faceting on stats the stat_field is the facet and the value is the
44
44
 
45
45
  [Upgrade solr in sunspot](https://github.com/sunspot/sunspot/wiki/Upgrading-sunspot_solr-Solr-Instance)
46
46
 
47
- ### Boolean Searches
48
47
 
49
- Usually Suspot use the dismax for searches, here we extend to edismax to manage also boolean logic searches
48
+ ### StatsComponent Notes
50
49
 
51
- a OR (b AND c) works.
50
+ The facet field can be selectively applied. That is if you want stats on field "A" and "B", you can facet a on "X" and B on "Y" using &stats.field=A&f.A.stats.facet=X&stats.field=B&f.B.stats.facet=Y
52
51
 
53
- ## TODO
52
+ *Warning*, as implemented, all facet results are returned, be careful what fields you ask for!
54
53
 
55
- Some more test!
54
+ Multi-valued fields and facets may be slow.
56
55
 
56
+ [StatsComponent](http://wiki.apache.org/solr/StatsComponent)
57
57
 
58
58
  ## Contributing
59
59
 
@@ -18,7 +18,7 @@ module Sunspot
18
18
  @sort = false
19
19
  @rows ||=
20
20
  begin
21
- if !@search.stat_response['stats_fields'].nil?
21
+ if @search.stat_response.present? && @search.stat_response['stats_fields'].present?
22
22
  if @options[:facet].present?
23
23
  stat = @search.stat_response['stats_fields'][@field.indexed_name]
24
24
  data = stat.nil? ? [] : stat['facets'][@options[:facet].indexed_name]
@@ -31,7 +31,7 @@ module Sunspot
31
31
  rows = []
32
32
 
33
33
  data.collect do |stat, value|
34
- rows << StatRow.new(stat, value[@options[:type]], value, self)
34
+ rows << StatRow.new(stat, value[@options[:type]], value, self) if value.present?
35
35
  end
36
36
 
37
37
  if @options[:sort] == :count
@@ -41,7 +41,7 @@ module Sunspot
41
41
  end if @sort
42
42
  return rows.empty? ? [] : rows[0..@options[:limit]]
43
43
  rescue Exception => e
44
- puts "Error: #{e}"
44
+ puts "Sunspot Stats error: #{e.message} \n\n #{e.backtrace}"
45
45
  return []
46
46
  end
47
47
  end
@@ -1,3 +1,3 @@
1
1
  module SunspotStats
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -1,7 +1,9 @@
1
1
  require File.expand_path('spec_helper', File.dirname(__FILE__))
2
2
 
3
3
  describe "stats component" do
4
+
4
5
  it "sends stats parameters to solr" do
6
+
5
7
  session.search Content do
6
8
  stat :visibility, :facet => :published_at
7
9
  end
@@ -6,8 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["giovannelli@extendi.it"]
7
7
  gem.description = <<-TEXT
8
8
  Sunspot is a library providing a powerful, all-ruby API for the Solr search engine. This gem extend sunspot adding the
9
- statsComponent feature, which returns simple statistics for indexed numeric fields within the DocSet. Usually Suspot use the dismax
10
- for searches, here we extend to edismax to manage also boolean logic searches.
9
+ statsComponent feature, which returns simple statistics for indexed numeric fields within the DocSet.
11
10
  TEXT
12
11
  gem.summary = "Added the statsComponent to sunspot"
13
12
  gem.homepage = "https://github.com/giovannelli/sunspot_stats"
@@ -18,7 +17,6 @@ Gem::Specification.new do |gem|
18
17
  gem.require_paths = ["lib"]
19
18
  gem.version = SunspotStats::VERSION
20
19
 
21
- gem.add_dependency "sunspot", "~> 2.0.0"
22
20
  gem.add_development_dependency "rspec"
23
21
 
24
22
  gem.rdoc_options << '--webcvs=http://github.com/giovannelli/sunspot_stats/tree/master/%s' <<
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-21 00:00:00.000000000 Z
12
+ date: 2013-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: sunspot
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 2.0.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: 2.0.0
30
14
  - !ruby/object:Gem::Dependency
31
15
  name: rspec
32
16
  requirement: !ruby/object:Gem::Requirement
@@ -45,9 +29,7 @@ dependencies:
45
29
  version: '0'
46
30
  description: ! " Sunspot is a library providing a powerful, all-ruby API for
47
31
  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"
32
+ feature, which returns simple statistics for indexed numeric fields within the DocSet.\n"
51
33
  email:
52
34
  - giovannelli@extendi.it
53
35
  executables: []