multi-solr 01.04.00 → 01.05.00

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