multi-solr 01.04.00 → 01.05.00

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.
@@ -125,7 +125,7 @@ class MultiSolr::SearchRequest
125
125
 
126
126
  # Erzeugt aus den filter_values die Solr-Query
127
127
  # liefert die Query als String
128
- def build_query
128
+ def build_query config=nil
129
129
  solr_queries = []
130
130
  @filter_values.each do |fname, value|
131
131
  fa_composite = build_filter_value_composite fname, value
@@ -136,7 +136,7 @@ class MultiSolr::SearchRequest
136
136
  end
137
137
 
138
138
 
139
- def render_filter_description
139
+ def render_filter_description config=nil
140
140
  descriptions = []
141
141
  @filter_values.each do |fname, value|
142
142
  filter = self.class.possible_filters[fname]
@@ -66,13 +66,14 @@ class MultiSolr::SingleCoreHandler
66
66
  # fieldname: Name des Feldes (als Symbol)
67
67
  # context: optionales Object mit weiteren Context-Informationen, dieser wird an den Force-Query-Builder übergeben
68
68
  # search_request: optional bestehendes SearchRequest (für DrillDown-Funktionalität)
69
+ # config: Config-Data, used as optional parameter for query-build
69
70
  # Beispiel:
70
71
  # searcher.list_possible_values :lkz, :whs_id => 5
71
72
  #
72
- def list_possible_values fieldname, context=nil, search_request=nil
73
+ def list_possible_values fieldname, context=nil, search_request=nil, config=nil
73
74
  search_request ||= MultiSolr::SearchRequest.new
74
75
  search_request.facets = [fieldname]
75
- result = search(search_request, :context => context, :facets_only => true)
76
+ result = search(search_request, :context => context, :facets_only => true, :config => config)
76
77
  facet_counts = result.facet_counts
77
78
  values = []
78
79
  if MultiSolr.logger.debug?
@@ -103,16 +104,18 @@ class MultiSolr::SingleCoreHandler
103
104
 
104
105
  # Ermittelt und cached die möglichen Werte der als pre_cache_value_fields definierten Felder
105
106
  # Diese werden im Rails-Cache zwischengespeichert
106
- # Ansonsten see BaseSearcher.list_possible_values
107
- # zusätzlicher Parameter:
108
- # expires_in: optional, Gültigkeit des Cache-Wertes in Sekunden, default ist 3 Stunden
107
+ # Parameter:
108
+ # fieldname: Name des Feldes (als Symbol)
109
+ # context: optionales Object mit weiteren Context-Informationen, dieser wird an den Force-Query-Builder übergeben
110
+ # config: Config-Data, used as optional parameter for query-build
111
+ # expires_in: optional, Gültigkeit des Cache-Wertes in Sekunden, default ist 3 Stunden
109
112
  #
110
- def cached_list_possible_values fieldname, context=nil, expires_in=3.hours
113
+ def cached_list_possible_values fieldname, context=nil, config=nil, expires_in=3.hours
111
114
  cache_key = "solr-#{self.core_name}-#{context}-#{fieldname}-values"
112
115
  values = MultiSolr.cache.read(cache_key)
113
116
  if values.nil?
114
117
  # dann sind noch gar keine Werte gecached => diese holen
115
- values = list_possible_values fieldname, context
118
+ values = list_possible_values fieldname, context, nil, config
116
119
  # und nun im Cache ablegen
117
120
  MultiSolr.logger.debug "#{self.class.name}.cached_list_possible_values: write in cache '#{cache_key}' => #{values.inspect}" if MultiSolr.logger.debug?
118
121
  MultiSolr.cache.write(cache_key, values, :expires_in => expires_in)
@@ -164,7 +167,8 @@ class MultiSolr::SingleCoreHandler
164
167
  # params:
165
168
  # solr_search_request : die Suchanfrage als SolrSearchRequest-Instance
166
169
  # options : Hash mit weiteren Optionen für Query Anfragen:
167
- # :context : Hash mit weiteren Context-Informationen, dieser wird u.a. an den Force-Query-Builder übergeben
170
+ # :context Hash mit weiteren Context-Informationen, dieser wird u.a. an den Force-Query-Builder übergeben
171
+ # :config Config-Data, uses as optional parameter for query-build
168
172
  # :fieldlist Field-List (siehe Solr-Doku fl-Parameter), default ist *
169
173
  # :facets_only wenn true, dann nur Facets ermittlen
170
174
  # :without_facets wenn true, dann auf Facets verzichten
@@ -193,7 +197,7 @@ class MultiSolr::SingleCoreHandler
193
197
  # options: siehe search
194
198
  # returns: Hash mit den SOLR-Parametern
195
199
  def build_solr_params solr_search_request, options
196
-
200
+ config = options[:config]
197
201
  solr_params = {}
198
202
  solr_params['stats.field'] = []
199
203
 
@@ -201,7 +205,7 @@ class MultiSolr::SingleCoreHandler
201
205
  fq_string = join_params(fq_string) if fq_string.is_a?(Hash) # wegen abwärtskompatibilität (Früher lieferte die Funktion force_query_params eine Hash)
202
206
  solr_params[:fq] = fq_string if fq_string
203
207
 
204
- q = solr_search_request.build_query
208
+ q = solr_search_request.build_query config
205
209
  q = "*:*" if q.blank? # wenn keine Query angegeben ist, dann nach allem Suchen
206
210
  solr_params[:q] = q
207
211
 
@@ -1,3 +1,3 @@
1
1
  module MultiSolr
2
- VERSION = "01.04.00"
2
+ VERSION = "01.05.00"
3
3
  end
@@ -15,7 +15,7 @@ describe MultiSolr::SingleCoreHandler do
15
15
  it "should call 'list_possible_values' if no cached value exist" do
16
16
  fieldname = :test; context = :test_context2
17
17
  value = "test-value"
18
- subject.should_receive(:list_possible_values).with(fieldname, context) do
18
+ subject.should_receive(:list_possible_values).with(fieldname, context, nil, nil) do
19
19
  value
20
20
  end
21
21
  subject.cached_list_possible_values(fieldname, context).should == value
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  ENV["RAILS_ENV"] ||= 'test'
3
3
  require 'rspec'
4
4
  require 'multi_solr'
5
- require "ap"
5
+ #require "ap"
6
6
 
7
7
  require "solr_testdata_provider"
8
8
  require "solr_test_helper"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multi-solr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 4
8
+ - 5
9
9
  - 0
10
- version: 01.04.00
10
+ version: 01.05.00
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bernd Ledig
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-31 00:00:00 +02:00
19
- default_executable:
18
+ date: 2012-09-19 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rsolr
@@ -174,7 +173,6 @@ files:
174
173
  - test-solr/start-test-solr.sh
175
174
  - test-solr/start.jar
176
175
  - test-solr/webapps/solr.war
177
- has_rdoc: true
178
176
  homepage: ""
179
177
  licenses: []
180
178
 
@@ -204,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
202
  requirements: []
205
203
 
206
204
  rubyforge_project: multi-solr
207
- rubygems_version: 1.6.2
205
+ rubygems_version: 1.8.24
208
206
  signing_key:
209
207
  specification_version: 3
210
208
  summary: SOLR-Framework with support for multiple SOLR-Cores