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
|
-
#
|
107
|
-
#
|
108
|
-
#
|
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
|
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
|
|
data/lib/multi_solr/version.rb
CHANGED
@@ -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
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:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 5
|
9
9
|
- 0
|
10
|
-
version: 01.
|
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-
|
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.
|
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
|