sunspot_stats 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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: []