solr4r 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +30 -0
- data/README +1 -1
- data/lib/solr4r/builder.rb +31 -21
- data/lib/solr4r/client/admin.rb +83 -0
- data/lib/solr4r/client/query.rb +93 -0
- data/lib/solr4r/client/update.rb +123 -0
- data/lib/solr4r/client.rb +113 -149
- data/lib/solr4r/document.rb +14 -14
- data/lib/solr4r/endpoints.rb +86 -0
- data/lib/solr4r/logging.rb +5 -3
- data/lib/solr4r/request.rb +10 -38
- data/lib/solr4r/response.rb +19 -8
- data/lib/solr4r/result.rb +2 -2
- data/lib/solr4r/uri_extension.rb +5 -4
- data/lib/solr4r/version.rb +1 -1
- data/lib/solr4r.rb +3 -2
- data/spec/solr4r/builder_spec.rb +50 -30
- data/spec/solr4r/client_spec.rb +93 -0
- data/spec/spec_helper.rb +0 -4
- metadata +37 -12
- data/lib/solr4r/request_extension.rb +0 -44
data/lib/solr4r/uri_extension.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# #
|
8
8
|
# Copyright (C) 2014-2015 Jens Wille #
|
9
9
|
# #
|
10
|
-
#
|
10
|
+
# solr4r is free software: you can redistribute it and/or modify it under the #
|
11
11
|
# terms of the GNU Affero General Public License as published by the Free #
|
12
12
|
# Software Foundation, either version 3 of the License, or (at your option) #
|
13
13
|
# any later version. #
|
@@ -55,12 +55,13 @@ module Solr4R
|
|
55
55
|
|
56
56
|
def query_pairs(key, value, pairs = [])
|
57
57
|
if value.is_a?(Hash)
|
58
|
-
|
58
|
+
kv = value.fetch(vk = :_, true)
|
59
|
+
pairs << [key, kv] unless kv.nil?
|
59
60
|
|
60
61
|
value.each { |sub, val|
|
61
|
-
query_pairs("#{key}.#{sub}", val, pairs) }
|
62
|
+
query_pairs("#{key}.#{sub}", val, pairs) unless sub == vk }
|
62
63
|
else
|
63
|
-
Array(value).each { |val| pairs << [key, val] }
|
64
|
+
Array(value).each { |val| pairs << [key, val] unless val.nil? }
|
64
65
|
end
|
65
66
|
|
66
67
|
pairs
|
data/lib/solr4r/version.rb
CHANGED
data/lib/solr4r.rb
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
# #
|
6
6
|
# solr4r -- A Ruby client for Apache Solr #
|
7
7
|
# #
|
8
|
-
# Copyright (C) 2014 Jens Wille
|
8
|
+
# Copyright (C) 2014-2015 Jens Wille #
|
9
9
|
# #
|
10
|
-
#
|
10
|
+
# solr4r is free software: you can redistribute it and/or modify it under the #
|
11
11
|
# terms of the GNU Affero General Public License as published by the Free #
|
12
12
|
# Software Foundation, either version 3 of the License, or (at your option) #
|
13
13
|
# any later version. #
|
@@ -40,4 +40,5 @@ require_relative 'solr4r/logging'
|
|
40
40
|
require_relative 'solr4r/builder'
|
41
41
|
require_relative 'solr4r/request'
|
42
42
|
require_relative 'solr4r/response'
|
43
|
+
require_relative 'solr4r/endpoints'
|
43
44
|
require_relative 'solr4r/client'
|
data/spec/solr4r/builder_spec.rb
CHANGED
@@ -1,13 +1,9 @@
|
|
1
1
|
describe Solr4R::Builder do
|
2
2
|
|
3
|
-
before :all do
|
4
|
-
@builder = Solr4R::Builder.new
|
5
|
-
end
|
6
|
-
|
7
3
|
describe '#add' do
|
8
4
|
|
9
5
|
example do
|
10
|
-
|
6
|
+
expect(subject.add(employeeId: '05991', office: 'Bridgewater', skills: %w[Perl Java])).to eq(<<-EOT)
|
11
7
|
<?xml version="1.0" encoding="UTF-8"?>
|
12
8
|
<add>
|
13
9
|
<doc>
|
@@ -21,7 +17,7 @@ describe Solr4R::Builder do
|
|
21
17
|
end
|
22
18
|
|
23
19
|
example do
|
24
|
-
|
20
|
+
expect(subject.add([{ employeeId: '05992', office: 'Blackwater' }, { employeeId: '05993', skills: 'Ruby' }])).to eq(<<-EOT)
|
25
21
|
<?xml version="1.0" encoding="UTF-8"?>
|
26
22
|
<add>
|
27
23
|
<doc>
|
@@ -37,7 +33,7 @@ describe Solr4R::Builder do
|
|
37
33
|
end
|
38
34
|
|
39
35
|
example do
|
40
|
-
|
36
|
+
expect(subject.add([id: 42, text: 'blah'], commitWithin: 23)).to eq(<<-EOT)
|
41
37
|
<?xml version="1.0" encoding="UTF-8"?>
|
42
38
|
<add commitWithin="23">
|
43
39
|
<doc>
|
@@ -49,7 +45,7 @@ describe Solr4R::Builder do
|
|
49
45
|
end
|
50
46
|
|
51
47
|
example do
|
52
|
-
|
48
|
+
expect(subject.add([[{ id: 42, text: 'blah' }, boost: 10.0]])).to eq(<<-EOT)
|
53
49
|
<?xml version="1.0" encoding="UTF-8"?>
|
54
50
|
<add>
|
55
51
|
<doc boost="10.0">
|
@@ -61,7 +57,7 @@ describe Solr4R::Builder do
|
|
61
57
|
end
|
62
58
|
|
63
59
|
example do
|
64
|
-
|
60
|
+
expect(subject.add(id: 42, text: ['blah', boost: 2.0])).to eq(<<-EOT)
|
65
61
|
<?xml version="1.0" encoding="UTF-8"?>
|
66
62
|
<add>
|
67
63
|
<doc>
|
@@ -73,7 +69,7 @@ describe Solr4R::Builder do
|
|
73
69
|
end
|
74
70
|
|
75
71
|
example do
|
76
|
-
|
72
|
+
expect(subject.add([[{ id: 42, text: ['blah', boost: 2.0] }, boost: 10.0]], commitWithin: 23)).to eq(<<-EOT)
|
77
73
|
<?xml version="1.0" encoding="UTF-8"?>
|
78
74
|
<add commitWithin="23">
|
79
75
|
<doc boost="10.0">
|
@@ -85,7 +81,7 @@ describe Solr4R::Builder do
|
|
85
81
|
end
|
86
82
|
|
87
83
|
example do
|
88
|
-
|
84
|
+
expect(subject.add(employeeId: '05991', office: "\fBridgew\ate\r", skills: %w[Perl Java])).to eq(<<-EOT)
|
89
85
|
<?xml version="1.0" encoding="UTF-8"?>
|
90
86
|
<add>
|
91
87
|
<doc>
|
@@ -103,14 +99,14 @@ describe Solr4R::Builder do
|
|
103
99
|
describe '#commit' do
|
104
100
|
|
105
101
|
example do
|
106
|
-
|
102
|
+
expect(subject.commit).to eq(<<-EOT)
|
107
103
|
<?xml version="1.0" encoding="UTF-8"?>
|
108
104
|
<commit/>
|
109
105
|
EOT
|
110
106
|
end
|
111
107
|
|
112
108
|
example do
|
113
|
-
|
109
|
+
expect(subject.commit(softCommit: true)).to eq(<<-EOT)
|
114
110
|
<?xml version="1.0" encoding="UTF-8"?>
|
115
111
|
<commit softCommit="true"/>
|
116
112
|
EOT
|
@@ -121,14 +117,14 @@ describe Solr4R::Builder do
|
|
121
117
|
describe '#optimize' do
|
122
118
|
|
123
119
|
example do
|
124
|
-
|
120
|
+
expect(subject.optimize).to eq(<<-EOT)
|
125
121
|
<?xml version="1.0" encoding="UTF-8"?>
|
126
122
|
<optimize/>
|
127
123
|
EOT
|
128
124
|
end
|
129
125
|
|
130
126
|
example do
|
131
|
-
|
127
|
+
expect(subject.optimize(maxSegments: 42)).to eq(<<-EOT)
|
132
128
|
<?xml version="1.0" encoding="UTF-8"?>
|
133
129
|
<optimize maxSegments="42"/>
|
134
130
|
EOT
|
@@ -139,7 +135,7 @@ describe Solr4R::Builder do
|
|
139
135
|
describe '#rollback' do
|
140
136
|
|
141
137
|
example do
|
142
|
-
|
138
|
+
expect(subject.rollback).to eq(<<-EOT)
|
143
139
|
<?xml version="1.0" encoding="UTF-8"?>
|
144
140
|
<rollback/>
|
145
141
|
EOT
|
@@ -150,7 +146,7 @@ describe Solr4R::Builder do
|
|
150
146
|
describe '#delete' do
|
151
147
|
|
152
148
|
example do
|
153
|
-
|
149
|
+
expect(subject.delete(id: '05991')).to eq(<<-EOT)
|
154
150
|
<?xml version="1.0" encoding="UTF-8"?>
|
155
151
|
<delete>
|
156
152
|
<id>05991</id>
|
@@ -159,7 +155,7 @@ describe Solr4R::Builder do
|
|
159
155
|
end
|
160
156
|
|
161
157
|
example do
|
162
|
-
|
158
|
+
expect(subject.delete(id: %w[05991 06000])).to eq(<<-EOT)
|
163
159
|
<?xml version="1.0" encoding="UTF-8"?>
|
164
160
|
<delete>
|
165
161
|
<id>05991</id>
|
@@ -169,7 +165,7 @@ describe Solr4R::Builder do
|
|
169
165
|
end
|
170
166
|
|
171
167
|
example do
|
172
|
-
|
168
|
+
expect(subject.delete(query: 'office:Bridgewater')).to eq(<<-EOT)
|
173
169
|
<?xml version="1.0" encoding="UTF-8"?>
|
174
170
|
<delete>
|
175
171
|
<query>office:Bridgewater</query>
|
@@ -178,7 +174,7 @@ describe Solr4R::Builder do
|
|
178
174
|
end
|
179
175
|
|
180
176
|
example do
|
181
|
-
|
177
|
+
expect(subject.delete(query: %w[office:Bridgewater office:Osaka])).to eq(<<-EOT)
|
182
178
|
<?xml version="1.0" encoding="UTF-8"?>
|
183
179
|
<delete>
|
184
180
|
<query>office:Bridgewater</query>
|
@@ -188,39 +184,45 @@ describe Solr4R::Builder do
|
|
188
184
|
end
|
189
185
|
|
190
186
|
example do
|
191
|
-
|
187
|
+
expect(subject.delete(query: { office: 'Bridgewater', skills: 'Perl' })).to eq(<<-EOT)
|
192
188
|
<?xml version="1.0" encoding="UTF-8"?>
|
193
189
|
<delete>
|
194
|
-
<query>office:Bridgewater</query>
|
195
|
-
<query>skills:Perl</query>
|
190
|
+
<query>office:Bridgewater skills:Perl</query>
|
196
191
|
</delete>
|
197
192
|
EOT
|
198
193
|
end
|
199
194
|
|
200
195
|
example do
|
201
|
-
|
196
|
+
expect(subject.delete(query: { office: %w[Bridgewater Osaka] })).to eq(<<-EOT)
|
202
197
|
<?xml version="1.0" encoding="UTF-8"?>
|
203
198
|
<delete>
|
204
|
-
<query>office:Bridgewater</query>
|
205
|
-
|
199
|
+
<query>office:Bridgewater office:Osaka</query>
|
200
|
+
</delete>
|
201
|
+
EOT
|
202
|
+
end
|
203
|
+
|
204
|
+
example do
|
205
|
+
expect(subject.delete(query: { office: 'Bridgewater', _: { type: :edismax } })).to eq(<<-EOT)
|
206
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
207
|
+
<delete>
|
208
|
+
<query>{!type=edismax}office:Bridgewater</query>
|
206
209
|
</delete>
|
207
210
|
EOT
|
208
211
|
end
|
209
212
|
|
210
213
|
example do
|
211
|
-
|
214
|
+
expect(subject.delete(id: %w[05991 06000], query: { office: %w[Bridgewater Osaka] })).to eq(<<-EOT)
|
212
215
|
<?xml version="1.0" encoding="UTF-8"?>
|
213
216
|
<delete>
|
214
217
|
<id>05991</id>
|
215
218
|
<id>06000</id>
|
216
|
-
<query>office:Bridgewater</query>
|
217
|
-
<query>office:Osaka</query>
|
219
|
+
<query>office:Bridgewater office:Osaka</query>
|
218
220
|
</delete>
|
219
221
|
EOT
|
220
222
|
end
|
221
223
|
|
222
224
|
example do
|
223
|
-
|
225
|
+
expect(subject.delete(query: "office:\fBridgew\ate\r")).to eq(<<-EOT)
|
224
226
|
<?xml version="1.0" encoding="UTF-8"?>
|
225
227
|
<delete>
|
226
228
|
<query>office:Bridgewte </query>
|
@@ -228,6 +230,24 @@ describe Solr4R::Builder do
|
|
228
230
|
EOT
|
229
231
|
end
|
230
232
|
|
233
|
+
example do
|
234
|
+
expect(subject.delete(query: 'office:Bridge&water')).to eq(<<-EOT)
|
235
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
236
|
+
<delete>
|
237
|
+
<query>office:Bridge&water</query>
|
238
|
+
</delete>
|
239
|
+
EOT
|
240
|
+
end
|
241
|
+
|
242
|
+
example do
|
243
|
+
expect(subject.delete(query: { office: 'Bridge&water' })).to eq(<<-EOT)
|
244
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
245
|
+
<delete>
|
246
|
+
<query>office:Bridge&water</query>
|
247
|
+
</delete>
|
248
|
+
EOT
|
249
|
+
end
|
250
|
+
|
231
251
|
end
|
232
252
|
|
233
253
|
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
describe Solr4R::Client do
|
2
|
+
|
3
|
+
describe '::query_string' do
|
4
|
+
|
5
|
+
[
|
6
|
+
[nil, nil],
|
7
|
+
[nil, ''],
|
8
|
+
[nil, []],
|
9
|
+
[nil, {}],
|
10
|
+
|
11
|
+
['title:foo', 'title:foo'],
|
12
|
+
['title:foo%26bar', 'title:foo&bar'],
|
13
|
+
['title:foo&bar', 'title:foo&bar', false],
|
14
|
+
|
15
|
+
['title:foo author:bar', 'title:foo author:bar'],
|
16
|
+
['title:foo author:(bar baz)', 'title:foo author:(bar baz)'],
|
17
|
+
['title:foo -author:(bar baz)', 'title:foo -author:(bar baz)'],
|
18
|
+
|
19
|
+
['title:foo', %w[title:foo]],
|
20
|
+
['title:foo%26bar', %w[title:foo&bar]],
|
21
|
+
['title:foo&bar', %w[title:foo&bar], false],
|
22
|
+
|
23
|
+
['title:foo author:bar', %w[title:foo author:bar]],
|
24
|
+
['title:foo author:bar', ['title:foo', author: 'bar']],
|
25
|
+
['title:foo author:(bar baz)', %w[title:foo author:(bar\ baz)]],
|
26
|
+
['title:foo -author:(bar baz)', %w[title:foo -author:(bar\ baz)]],
|
27
|
+
['title:foo -author%26:(bar baz)', %w[title:foo -author&:(bar\ baz)]],
|
28
|
+
['title:foo -author&:(bar baz)', %w[title:foo -author&:(bar\ baz)], false],
|
29
|
+
|
30
|
+
['title:foo', title: 'foo'],
|
31
|
+
['title:foo%26bar', title: 'foo&bar'],
|
32
|
+
['title:foo&bar', { title: 'foo&bar' }, false],
|
33
|
+
['title:foo%26bar%26baz', title: 'foo&bar&baz'],
|
34
|
+
['title:foo&bar&baz', { title: 'foo&bar&baz' }, false],
|
35
|
+
|
36
|
+
['title:foo author:bar', title: 'foo', author: 'bar'],
|
37
|
+
['title:foo author:(bar baz)', title: 'foo', author: '(bar baz)'],
|
38
|
+
['title:foo -author:(bar baz)', title: 'foo', '-author' => '(bar baz)'],
|
39
|
+
['title:foo -author%26:(bar baz)', title: 'foo', '-author&' => '(bar baz)'],
|
40
|
+
['title:foo -author&:(bar baz)', { title: 'foo', '-author&' => '(bar baz)' }, false],
|
41
|
+
|
42
|
+
['title:foo author:bar author:baz', title: 'foo', author: %w[bar baz]],
|
43
|
+
['title:foo author:bar%26baz', title: 'foo', author: %w[bar&baz]],
|
44
|
+
['title:foo author:bar&baz', { title: 'foo', author: %w[bar&baz] }, false],
|
45
|
+
['title:foo -author:bar -author:baz', title: 'foo', '-author' => %w[bar baz]],
|
46
|
+
['title:foo -author%26:bar -author%26:baz', title: 'foo', '-author&' => %w[bar baz]],
|
47
|
+
['title:foo -author&:bar -author&:baz', { title: 'foo', '-author&' => %w[bar baz] }, false],
|
48
|
+
|
49
|
+
['{!q.op=AND}title:foo', title: 'foo', _: 'q.op=AND'],
|
50
|
+
['{!q.op=AND}title:foo author:bar', ['title:foo', author: 'bar', _: 'q.op=AND']],
|
51
|
+
['{!q.op=AND df=title}foo', ['foo', _: 'q.op=AND df=title']],
|
52
|
+
['{!q.op=AND df=title}foo', ['foo', _: %w[q.op=AND df=title]]],
|
53
|
+
['{!q.op=AND df=title}foo', ['foo', _: { 'q.op' => 'AND', df: :title }]]
|
54
|
+
].each_with_index { |(expected, *args), index|
|
55
|
+
example(index) { expect(described_class.query_string(*args)).to eq(expected) }
|
56
|
+
}
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
describe '::local_params_string' do
|
61
|
+
|
62
|
+
[
|
63
|
+
[nil, nil],
|
64
|
+
[nil, ''],
|
65
|
+
[nil, []],
|
66
|
+
[nil, {}],
|
67
|
+
|
68
|
+
['{!q.op=AND df=title}', 'q.op=AND df=title'],
|
69
|
+
['{!q.op=AND df=title}', %w[q.op=AND df=title]],
|
70
|
+
['{!q.op=AND df=title}', 'q.op' => 'AND', df: :title],
|
71
|
+
|
72
|
+
['{!type=dismax qf="myfield yourfield"}', 'type=dismax qf="myfield yourfield"'],
|
73
|
+
['{!type=dismax qf="myfield yourfield"}', ['type=dismax', 'qf="myfield yourfield"']],
|
74
|
+
['{!type=dismax qf="myfield yourfield"}', type: :dismax, qf: 'myfield yourfield'],
|
75
|
+
|
76
|
+
['{!type=dismax qf="myfield%26yourfield"}', 'type=dismax qf="myfield&yourfield"'],
|
77
|
+
['{!type=dismax qf="myfield&yourfield"}', 'type=dismax qf="myfield&yourfield"', {}, false],
|
78
|
+
['{!type=dismax qf="myfield%26yourfield"}', ['type=dismax', 'qf="myfield&yourfield"']],
|
79
|
+
['{!type=dismax qf=myfield%26yourfield}', type: :dismax, qf: 'myfield&yourfield'],
|
80
|
+
|
81
|
+
['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
|
82
|
+
'type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl'],
|
83
|
+
['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
|
84
|
+
%w[type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl]],
|
85
|
+
['{!type=mlt qf=$mlt.fl mintf=$mlt.mintf mindf=$mlt.mindf minwl=$mlt.minwl maxwl=$mlt.maxwl}',
|
86
|
+
%w[mintf mindf minwl maxwl], type: :mlt, qf: '$mlt.fl']
|
87
|
+
].each_with_index { |(expected, *args), index|
|
88
|
+
example(index) { expect(described_class.local_params_string(*args)).to eq(expected) }
|
89
|
+
}
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solr4r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Wille
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -109,15 +109,19 @@ files:
|
|
109
109
|
- lib/solr4r.rb
|
110
110
|
- lib/solr4r/builder.rb
|
111
111
|
- lib/solr4r/client.rb
|
112
|
+
- lib/solr4r/client/admin.rb
|
113
|
+
- lib/solr4r/client/query.rb
|
114
|
+
- lib/solr4r/client/update.rb
|
112
115
|
- lib/solr4r/document.rb
|
116
|
+
- lib/solr4r/endpoints.rb
|
113
117
|
- lib/solr4r/logging.rb
|
114
118
|
- lib/solr4r/request.rb
|
115
|
-
- lib/solr4r/request_extension.rb
|
116
119
|
- lib/solr4r/response.rb
|
117
120
|
- lib/solr4r/result.rb
|
118
121
|
- lib/solr4r/uri_extension.rb
|
119
122
|
- lib/solr4r/version.rb
|
120
123
|
- spec/solr4r/builder_spec.rb
|
124
|
+
- spec/solr4r/client_spec.rb
|
121
125
|
- spec/spec_helper.rb
|
122
126
|
homepage: http://github.com/blackwinter/solr4r
|
123
127
|
licenses:
|
@@ -125,18 +129,39 @@ licenses:
|
|
125
129
|
metadata: {}
|
126
130
|
post_install_message: |2+
|
127
131
|
|
128
|
-
solr4r-0.0.
|
132
|
+
solr4r-0.0.6 [2015-03-18]:
|
129
133
|
|
130
|
-
*
|
131
|
-
*
|
132
|
-
|
133
|
-
*
|
134
|
-
|
135
|
-
*
|
134
|
+
* Extracted Solr4R::Endpoints from Solr4R::Client.
|
135
|
+
* Extracted Solr4R::Client::Admin, Solr4R::Client::Query and
|
136
|
+
Solr4R::Client::Update from Solr4R::Client.
|
137
|
+
* Added core to Solr4R::Client.default_uri and adjusted
|
138
|
+
Solr4R::Client::DEFAULT_SYSTEM_PATH.
|
139
|
+
* Added Solr4R::Client::Admin#cores.
|
140
|
+
* Added Solr4R::Client::Admin#fields.
|
141
|
+
* Added Solr4R::Client::Admin#analyze_document.
|
142
|
+
* Added Solr4R::Client::Admin#analyze_field.
|
143
|
+
* Added Solr4R::Client::Query#json_document.
|
144
|
+
* Added Solr4R::Client::Query#more_like_this_h (using the {request
|
145
|
+
handler}[https://cwiki.apache.org/confluence/display/solr/MoreLikeThis]).
|
146
|
+
* Added Solr4R::Client::Query#more_like_this_q (using the {query
|
147
|
+
parser}[https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-MoreLikeThisQueryParser]).
|
148
|
+
* Added support for {local
|
149
|
+
params}[https://cwiki.apache.org/confluence/display/solr/Local+Parameters+in+Queries]
|
150
|
+
to Solr4R::Client.query_string.
|
151
|
+
* Extended Solr4R::RequestUriExtension#query_pairs to skip +nil+ values.
|
152
|
+
* Extended Solr4R::RequestUriExtension#query_pairs to allow control over
|
153
|
+
nested key's value (via +:_+).
|
154
|
+
* Refactored Solr4R::Document#more_like_this to use
|
155
|
+
Solr4R::Client#more_like_this.
|
156
|
+
* Refactored Solr4R::Builder#delete to use Solr4R::Client.query_string for
|
157
|
+
query hashes.
|
158
|
+
* Refactored Solr4R::Request preparation; dropped
|
159
|
+
Solr4R::HTTPRequestExtension.
|
160
|
+
* Refactored Solr4R::Response initialization.
|
136
161
|
|
137
162
|
rdoc_options:
|
138
163
|
- "--title"
|
139
|
-
- solr4r Application documentation (v0.0.
|
164
|
+
- solr4r Application documentation (v0.0.6)
|
140
165
|
- "--charset"
|
141
166
|
- UTF-8
|
142
167
|
- "--line-numbers"
|
@@ -157,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
182
|
version: '0'
|
158
183
|
requirements: []
|
159
184
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.4.
|
185
|
+
rubygems_version: 2.4.6
|
161
186
|
signing_key:
|
162
187
|
specification_version: 4
|
163
188
|
summary: A Ruby client for Apache Solr.
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
#--
|
4
|
-
###############################################################################
|
5
|
-
# #
|
6
|
-
# solr4r -- A Ruby client for Apache Solr #
|
7
|
-
# #
|
8
|
-
# Copyright (C) 2014 Jens Wille #
|
9
|
-
# #
|
10
|
-
# Mir is free software: you can redistribute it and/or modify it under the #
|
11
|
-
# terms of the GNU Affero General Public License as published by the Free #
|
12
|
-
# Software Foundation, either version 3 of the License, or (at your option) #
|
13
|
-
# any later version. #
|
14
|
-
# #
|
15
|
-
# solr4r is distributed in the hope that it will be useful, but WITHOUT ANY #
|
16
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
|
17
|
-
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for #
|
18
|
-
# more details. #
|
19
|
-
# #
|
20
|
-
# You should have received a copy of the GNU Affero General Public License #
|
21
|
-
# along with solr4r. If not, see <http://www.gnu.org/licenses/>. #
|
22
|
-
# #
|
23
|
-
###############################################################################
|
24
|
-
#++
|
25
|
-
|
26
|
-
require 'cgi'
|
27
|
-
|
28
|
-
module Solr4R
|
29
|
-
|
30
|
-
module HTTPRequestExtension
|
31
|
-
|
32
|
-
def self.extended(base)
|
33
|
-
base.send(:attr_accessor, :params)
|
34
|
-
end
|
35
|
-
|
36
|
-
def from_uri(uri)
|
37
|
-
req = new(uri)
|
38
|
-
req.params = uri.params
|
39
|
-
req
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|