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
|
-
#
|
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
|