solr_wrapper 3.1.3 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/exe/solr_wrapper +2 -2
- data/lib/solr_wrapper/checksum_validator.rb +1 -1
- data/lib/solr_wrapper/configuration.rb +13 -5
- data/lib/solr_wrapper/instance.rb +15 -24
- data/lib/solr_wrapper/settings.rb +5 -5
- data/lib/solr_wrapper/tgz_extractor.rb +43 -0
- data/lib/solr_wrapper/version.rb +1 -1
- data/solr_wrapper.gemspec +0 -1
- data/spec/fixtures/basic_configs/schema.xml +34 -38
- data/spec/lib/solr_wrapper/configuration_spec.rb +1 -1
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 670f1eb6c506211a4b48b0e9d9dfd323bb84d795f9fa6ff92f2b5215b957b7c2
|
4
|
+
data.tar.gz: 684817a09ede9dbd1d91175660ea9ac3a570443de19a50a328ef6e0d77947f15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52615ab1fec5e78d0ea585642940696b25ae185b0c31d925fadcf715821004b65da77abe9e666cf120021ef1b52676d0e8ffee078f1a889d2bc2b3bca9cd0f8a
|
7
|
+
data.tar.gz: 03316f12ece3f78901e293dbe2cbd65406b103af0d1575fa6a135c98677ae5ec94040b3682a4007f37315d28e7997d031e50c25583e2334a2f3aefd872baaa62
|
data/README.md
CHANGED
@@ -31,13 +31,13 @@ SolrWrapper.wrap port: 8983,
|
|
31
31
|
|Option | |
|
32
32
|
|---------------|-----------------------------------------|
|
33
33
|
| instance_dir | Directory to store the solr index files |
|
34
|
-
| url | URL of the
|
34
|
+
| url | URL of the TGZ artifact to download |
|
35
35
|
| mirror_url | Mirror to download the solr artifacts from (e.g. http://lib-solr-mirror.princeton.edu/dist/)|
|
36
36
|
| version | Solr version to download and install |
|
37
37
|
| port | port to run Solr on |
|
38
38
|
| version_file | Local path to store the currently installed version |
|
39
|
-
| download_dir | Local path for storing the downloaded Solr
|
40
|
-
|
|
39
|
+
| download_dir | Local path for storing the downloaded Solr tgz file |
|
40
|
+
| artifact_path | Local path to the Solr tgz file |
|
41
41
|
| checksum | Path/URL to checksum |
|
42
42
|
| solr_xml | Path to Solr configuration |
|
43
43
|
| verbose | (Boolean) |
|
data/exe/solr_wrapper
CHANGED
@@ -39,8 +39,8 @@ args = OptionParser.new do |opts|
|
|
39
39
|
options[:cloud] = c
|
40
40
|
end
|
41
41
|
|
42
|
-
opts.on("--
|
43
|
-
options[:
|
42
|
+
opts.on("--artifact_path PATH", "Download/use solr at the given path") do |d|
|
43
|
+
options[:artifact_path] = d
|
44
44
|
end
|
45
45
|
|
46
46
|
opts.on("-iDIR", "--instance_directory DIR", "Install/use solr at the given directory") do |d|
|
@@ -28,7 +28,7 @@ module SolrWrapper
|
|
28
28
|
if config.default_download_url == config.static_config.archive_download_url
|
29
29
|
"#{config.default_download_url}.#{suffix}"
|
30
30
|
else
|
31
|
-
"https://archive.apache.org/dist
|
31
|
+
"https://archive.apache.org/dist/#{config.mirror_artifact_path}.#{suffix}"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -54,8 +54,8 @@ module SolrWrapper
|
|
54
54
|
options[:zookeeper_port]
|
55
55
|
end
|
56
56
|
|
57
|
-
def
|
58
|
-
options[:
|
57
|
+
def artifact_path
|
58
|
+
options[:artifact_path]
|
59
59
|
end
|
60
60
|
|
61
61
|
def download_dir
|
@@ -93,13 +93,21 @@ module SolrWrapper
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
+
def mirror_artifact_path
|
97
|
+
if version > '9'
|
98
|
+
"solr/solr/#{version}/solr-#{version}.tgz"
|
99
|
+
else
|
100
|
+
"lucene/solr/#{version}/solr-#{version}.tgz"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
96
104
|
def closest_mirror_url
|
97
|
-
"https://www.apache.org/dyn/closer.lua
|
105
|
+
"https://www.apache.org/dyn/closer.lua/#{mirror_artifact_path}?asjson=true"
|
98
106
|
end
|
99
107
|
|
100
108
|
def mirror_url
|
101
109
|
@mirror_url ||= if options[:mirror_url]
|
102
|
-
options[:mirror_url] +
|
110
|
+
options[:mirror_url] + mirror_artifact_path
|
103
111
|
else
|
104
112
|
begin
|
105
113
|
json = HTTP.follow.get(closest_mirror_url).body
|
@@ -120,7 +128,7 @@ module SolrWrapper
|
|
120
128
|
end
|
121
129
|
|
122
130
|
def archive_download_url
|
123
|
-
"https://archive.apache.org/dist
|
131
|
+
"https://archive.apache.org/dist/#{mirror_artifact_path}"
|
124
132
|
end
|
125
133
|
|
126
134
|
def cloud
|
@@ -6,10 +6,10 @@ require 'securerandom'
|
|
6
6
|
require 'socket'
|
7
7
|
require 'stringio'
|
8
8
|
require 'tmpdir'
|
9
|
-
require 'zip'
|
10
9
|
require 'erb'
|
11
10
|
require 'yaml'
|
12
11
|
require 'retriable'
|
12
|
+
require 'solr_wrapper/tgz_extractor'
|
13
13
|
|
14
14
|
module SolrWrapper
|
15
15
|
class Instance
|
@@ -23,9 +23,9 @@ module SolrWrapper
|
|
23
23
|
# @option options [String] :port port to run Solr on
|
24
24
|
# @option options [Boolean] :cloud Run solr in cloud mode
|
25
25
|
# @option options [String] :version_file Local path to store the currently installed version
|
26
|
-
# @option options [String] :download_dir Local directory to store the downloaded Solr
|
27
|
-
# @option options [String] :
|
28
|
-
# @option options [Boolean] :validate Should solr_wrapper download a new checksum and (re-)validate the
|
26
|
+
# @option options [String] :download_dir Local directory to store the downloaded Solr artifact and its checksum file in (overridden by :artifact_path)
|
27
|
+
# @option options [String] :artifact_path Local path for storing the downloaded Solr artifact file
|
28
|
+
# @option options [Boolean] :validate Should solr_wrapper download a new checksum and (re-)validate the tgz file? (default: true)
|
29
29
|
# @option options [String] :checksum Path/URL to checksum
|
30
30
|
# @option options [String] :solr_xml Path to Solr configuration
|
31
31
|
# @option options [String] :extra_lib_dir Path to directory containing extra libraries to copy into instance_dir/lib
|
@@ -36,6 +36,7 @@ module SolrWrapper
|
|
36
36
|
# @option options [String] :config
|
37
37
|
def initialize(options = {})
|
38
38
|
@config = Settings.new(Configuration.new(options))
|
39
|
+
@started = false
|
39
40
|
end
|
40
41
|
|
41
42
|
def host
|
@@ -63,7 +64,7 @@ module SolrWrapper
|
|
63
64
|
start
|
64
65
|
yield self
|
65
66
|
ensure
|
66
|
-
stop
|
67
|
+
stop if @started
|
67
68
|
end
|
68
69
|
|
69
70
|
##
|
@@ -73,6 +74,8 @@ module SolrWrapper
|
|
73
74
|
if managed?
|
74
75
|
exec('start', p: port, c: config.cloud)
|
75
76
|
|
77
|
+
@started = true
|
78
|
+
|
76
79
|
# Wait for solr to start
|
77
80
|
unless status
|
78
81
|
sleep config.poll_interval
|
@@ -255,25 +258,13 @@ module SolrWrapper
|
|
255
258
|
def extract
|
256
259
|
return config.instance_dir if extracted?
|
257
260
|
|
258
|
-
|
261
|
+
downloaded_artifact_path = download
|
259
262
|
|
260
|
-
|
261
|
-
Zip::File.open(zip_path) do |zip_file|
|
262
|
-
# Handle entries one by one
|
263
|
-
zip_file.each do |entry|
|
264
|
-
dest_file = File.join(config.tmp_save_dir, entry.name)
|
265
|
-
FileUtils.remove_entry(dest_file, true)
|
266
|
-
entry.extract(dest_file)
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
rescue Exception => e
|
271
|
-
abort "Unable to unzip #{zip_path} into #{config.tmp_save_dir}: #{e.message}"
|
272
|
-
end
|
263
|
+
SolrWrapper::TgzExtractor.new(downloaded_artifact_path, destination: config.tmp_save_dir).extract!
|
273
264
|
|
274
265
|
begin
|
275
266
|
FileUtils.remove_dir(config.instance_dir, true)
|
276
|
-
FileUtils.cp_r File.join(config.tmp_save_dir, File.basename(config.download_url,
|
267
|
+
FileUtils.cp_r File.join(config.tmp_save_dir, File.basename(config.download_url, '.tgz')), config.instance_dir
|
277
268
|
self.extracted_version = config.version
|
278
269
|
FileUtils.chmod 0755, config.solr_binary
|
279
270
|
rescue Exception => e
|
@@ -297,11 +288,11 @@ module SolrWrapper
|
|
297
288
|
end
|
298
289
|
|
299
290
|
def download
|
300
|
-
unless File.exist?(config.
|
301
|
-
Downloader.fetch_with_progressbar config.download_url, config.
|
302
|
-
checksum_validator.validate! config.
|
291
|
+
unless File.exist?(config.downloaded_artifact_path) && checksum_validator.validate?(config.downloaded_artifact_path)
|
292
|
+
Downloader.fetch_with_progressbar config.download_url, config.downloaded_artifact_path
|
293
|
+
checksum_validator.validate! config.downloaded_artifact_path
|
303
294
|
end
|
304
|
-
config.
|
295
|
+
config.downloaded_artifact_path
|
305
296
|
end
|
306
297
|
|
307
298
|
##
|
@@ -50,7 +50,7 @@ module SolrWrapper
|
|
50
50
|
|
51
51
|
def instance_dir
|
52
52
|
@instance_dir ||= static_config.instance_dir
|
53
|
-
@instance_dir ||= File.join(tmpdir, File.basename(download_url, ".
|
53
|
+
@instance_dir ||= File.join(tmpdir, File.basename(download_url, ".tgz"))
|
54
54
|
end
|
55
55
|
|
56
56
|
def managed?
|
@@ -62,9 +62,9 @@ module SolrWrapper
|
|
62
62
|
@download_url ||= default_download_url
|
63
63
|
end
|
64
64
|
|
65
|
-
def
|
66
|
-
@
|
67
|
-
@
|
65
|
+
def downloaded_artifact_path
|
66
|
+
@downloaded_artifact_path ||= static_config.artifact_path
|
67
|
+
@downloaded_artifact_path ||= default_solr_artifact_path
|
68
68
|
end
|
69
69
|
|
70
70
|
def version_file
|
@@ -93,7 +93,7 @@ module SolrWrapper
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
def
|
96
|
+
def default_solr_artifact_path
|
97
97
|
File.join(download_dir, File.basename(download_url))
|
98
98
|
end
|
99
99
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'rubygems/package'
|
2
|
+
require 'zlib'
|
3
|
+
|
4
|
+
module SolrWrapper
|
5
|
+
class TgzExtractor
|
6
|
+
attr_reader :file, :destination
|
7
|
+
|
8
|
+
TAR_LONGLINK = '././@LongLink'
|
9
|
+
|
10
|
+
def initialize(file, destination: nil)
|
11
|
+
@file = file
|
12
|
+
@destination = destination || Dir.mktmpdir
|
13
|
+
end
|
14
|
+
|
15
|
+
def extract!
|
16
|
+
Gem::Package::TarReader.new(Zlib::GzipReader.open(file)) do |tar|
|
17
|
+
dest = nil
|
18
|
+
tar.each do |entry|
|
19
|
+
if entry.full_name == TAR_LONGLINK
|
20
|
+
dest = File.join destination, entry.read.strip
|
21
|
+
next
|
22
|
+
end
|
23
|
+
dest ||= File.join destination, entry.full_name
|
24
|
+
if entry.directory?
|
25
|
+
File.delete dest if File.file? dest
|
26
|
+
FileUtils.mkdir_p dest, mode: entry.header.mode, verbose: false
|
27
|
+
elsif entry.file?
|
28
|
+
FileUtils.rm_rf dest if File.directory? dest
|
29
|
+
File.open dest, 'wb' do |f|
|
30
|
+
f.print entry.read
|
31
|
+
end
|
32
|
+
FileUtils.chmod entry.header.mode, dest, verbose: false
|
33
|
+
elsif entry.header.typeflag == '2' # Symlink!
|
34
|
+
File.symlink entry.header.linkname, dest
|
35
|
+
end
|
36
|
+
dest = nil
|
37
|
+
end
|
38
|
+
end
|
39
|
+
rescue StandardError => e
|
40
|
+
abort "Unable to extract #{file} into #{destination}: #{e.message}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/solr_wrapper/version.rb
CHANGED
data/solr_wrapper.gemspec
CHANGED
@@ -16,10 +16,10 @@
|
|
16
16
|
limitations under the License.
|
17
17
|
-->
|
18
18
|
|
19
|
-
<!--
|
19
|
+
<!--
|
20
20
|
This is the Solr schema file. This file should be named "schema.xml" and
|
21
21
|
should be in the conf directory under the solr home
|
22
|
-
(i.e. ./solr/conf/schema.xml by default)
|
22
|
+
(i.e. ./solr/conf/schema.xml by default)
|
23
23
|
or located where the classloader for the Solr webapp can find it.
|
24
24
|
|
25
25
|
This example schema is the recommended starting point for users.
|
@@ -31,26 +31,26 @@
|
|
31
31
|
|
32
32
|
<schema name="example" version="1.5">
|
33
33
|
<!-- attribute "name" is the name of this schema and is only used for display purposes.
|
34
|
-
version="x.y" is Solr's version number for the schema syntax and
|
34
|
+
version="x.y" is Solr's version number for the schema syntax and
|
35
35
|
semantics. It should not normally be changed by applications.
|
36
36
|
|
37
|
-
1.0: multiValued attribute did not exist, all fields are multiValued
|
37
|
+
1.0: multiValued attribute did not exist, all fields are multiValued
|
38
38
|
by nature
|
39
|
-
1.1: multiValued attribute introduced, false by default
|
40
|
-
1.2: omitTermFreqAndPositions attribute introduced, true by default
|
39
|
+
1.1: multiValued attribute introduced, false by default
|
40
|
+
1.2: omitTermFreqAndPositions attribute introduced, true by default
|
41
41
|
except for text fields.
|
42
42
|
1.3: removed optional field compress feature
|
43
43
|
1.4: autoGeneratePhraseQueries attribute introduced to drive QueryParser
|
44
|
-
behavior when a single string produces multiple tokens. Defaults
|
44
|
+
behavior when a single string produces multiple tokens. Defaults
|
45
45
|
to off for version >= 1.4
|
46
|
-
1.5: omitNorms defaults to true for primitive field types
|
46
|
+
1.5: omitNorms defaults to true for primitive field types
|
47
47
|
(int, float, boolean, string...)
|
48
48
|
-->
|
49
49
|
|
50
50
|
|
51
51
|
<!-- Valid attributes for fields:
|
52
52
|
name: mandatory - the name for the field
|
53
|
-
type: mandatory - the name of a field type from the
|
53
|
+
type: mandatory - the name of a field type from the
|
54
54
|
<types> fieldType section
|
55
55
|
indexed: true if this field should be indexed (searchable or sortable)
|
56
56
|
stored: true if this field should be retrievable
|
@@ -73,9 +73,9 @@
|
|
73
73
|
given field.
|
74
74
|
When using MoreLikeThis, fields used for similarity should be
|
75
75
|
stored for best performance.
|
76
|
-
termPositions: Store position information with the term vector.
|
76
|
+
termPositions: Store position information with the term vector.
|
77
77
|
This will increase storage costs.
|
78
|
-
termOffsets: Store offset information with the term vector. This
|
78
|
+
termOffsets: Store offset information with the term vector. This
|
79
79
|
will increase storage costs.
|
80
80
|
required: The field is required. It will throw an error if the
|
81
81
|
value does not exist
|
@@ -92,26 +92,26 @@
|
|
92
92
|
|
93
93
|
<!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
|
94
94
|
or Solr won't start. _version_ and update log are required for SolrCloud
|
95
|
-
-->
|
95
|
+
-->
|
96
96
|
<field name="_version_" type="long" indexed="true" stored="true"/>
|
97
|
-
|
97
|
+
|
98
98
|
<!-- points to the root document of a block of nested documents. Required for nested
|
99
99
|
document support, may be removed otherwise
|
100
100
|
-->
|
101
101
|
<field name="_root_" type="string" indexed="true" stored="false"/>
|
102
102
|
|
103
103
|
<!-- Only remove the "id" field if you have a very good reason to. While not strictly
|
104
|
-
required, it is highly recommended. A <uniqueKey> is present in almost all Solr
|
104
|
+
required, it is highly recommended. A <uniqueKey> is present in almost all Solr
|
105
105
|
installations. See the <uniqueKey> declaration below where <uniqueKey> is set to "id".
|
106
|
-
-->
|
107
|
-
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
|
106
|
+
-->
|
107
|
+
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
|
108
108
|
|
109
109
|
<!-- Dynamic field definitions allow using convention over configuration
|
110
|
-
for fields via the specification of patterns to match field names.
|
110
|
+
for fields via the specification of patterns to match field names.
|
111
111
|
EXAMPLE: name="*_i" will match any field ending in _i (like myid_i, z_i)
|
112
112
|
RESTRICTION: the glob-like pattern in the name attribute must have
|
113
113
|
a "*" only at the start or the end. -->
|
114
|
-
|
114
|
+
|
115
115
|
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
|
116
116
|
<dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/>
|
117
117
|
<dynamicField name="*_s" type="string" indexed="true" stored="true" />
|
@@ -133,7 +133,6 @@
|
|
133
133
|
|
134
134
|
<dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
|
135
135
|
<dynamicField name="*_dts" type="date" indexed="true" stored="true" multiValued="true"/>
|
136
|
-
<dynamicField name="*_p" type="location" indexed="true" stored="true"/>
|
137
136
|
|
138
137
|
<!-- some trie-coded dynamic fields for faster range queries -->
|
139
138
|
<dynamicField name="*_ti" type="tint" indexed="true" stored="true"/>
|
@@ -149,13 +148,13 @@
|
|
149
148
|
|
150
149
|
<dynamicField name="random_*" type="random" />
|
151
150
|
|
152
|
-
<!-- uncomment the following to ignore any fields that don't already match an existing
|
153
|
-
field name or dynamic field, rather than reporting them as an error.
|
154
|
-
alternately, change the type="ignored" to some other type e.g. "text" if you want
|
155
|
-
unknown fields indexed and/or stored by default -->
|
151
|
+
<!-- uncomment the following to ignore any fields that don't already match an existing
|
152
|
+
field name or dynamic field, rather than reporting them as an error.
|
153
|
+
alternately, change the type="ignored" to some other type e.g. "text" if you want
|
154
|
+
unknown fields indexed and/or stored by default -->
|
156
155
|
<!--dynamicField name="*" type="ignored" multiValued="true" /-->
|
157
156
|
|
158
|
-
<!-- Field to use to determine and enforce document uniqueness.
|
157
|
+
<!-- Field to use to determine and enforce document uniqueness.
|
159
158
|
Unless this field is marked with required="false", it will be a required field
|
160
159
|
-->
|
161
160
|
<uniqueKey>id</uniqueKey>
|
@@ -168,7 +167,7 @@
|
|
168
167
|
<copyField source="title" dest="text"/>
|
169
168
|
<copyField source="body" dest="text"/>
|
170
169
|
-->
|
171
|
-
|
170
|
+
|
172
171
|
<!-- field type definitions. The "name" attribute is
|
173
172
|
just a label to be used by field definitions. The "class"
|
174
173
|
attribute and any other attributes determine the real
|
@@ -200,7 +199,7 @@
|
|
200
199
|
- If sortMissingLast="false" and sortMissingFirst="false" (the default),
|
201
200
|
then default lucene sorting will be used which places docs without the
|
202
201
|
field first in an ascending sort and last in a descending sort.
|
203
|
-
-->
|
202
|
+
-->
|
204
203
|
|
205
204
|
<!--
|
206
205
|
Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.
|
@@ -230,7 +229,7 @@
|
|
230
229
|
|
231
230
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
|
232
231
|
is a more restricted form of the canonical representation of dateTime
|
233
|
-
http://www.w3.org/TR/xmlschema-2/#dateTime
|
232
|
+
http://www.w3.org/TR/xmlschema-2/#dateTime
|
234
233
|
The trailing "Z" designates UTC time and is mandatory.
|
235
234
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
|
236
235
|
All other components are mandatory.
|
@@ -245,7 +244,7 @@
|
|
245
244
|
NOW/DAY+6MONTHS+3DAYS
|
246
245
|
... 6 months and 3 days in the future from the start of
|
247
246
|
the current day
|
248
|
-
|
247
|
+
|
249
248
|
Consult the TrieDateField javadocs for more information.
|
250
249
|
|
251
250
|
Note: For faster range queries, consider the tdate type
|
@@ -261,11 +260,11 @@
|
|
261
260
|
|
262
261
|
<!-- The "RandomSortField" is not used to store or search any
|
263
262
|
data. You can declare fields of this type it in your schema
|
264
|
-
to generate pseudo-random orderings of your docs for sorting
|
263
|
+
to generate pseudo-random orderings of your docs for sorting
|
265
264
|
or function purposes. The ordering is generated based on the field
|
266
265
|
name and the version of the index. As long as the index version
|
267
266
|
remains unchanged, and the same field name is reused,
|
268
|
-
the ordering of the docs will be consistent.
|
267
|
+
the ordering of the docs will be consistent.
|
269
268
|
If you want different psuedo-random orderings of documents,
|
270
269
|
for the same version of the index, use a dynamicField and
|
271
270
|
change the field name in the request.
|
@@ -456,13 +455,13 @@
|
|
456
455
|
<filter class="solr.TrimFilterFactory" />
|
457
456
|
<!-- The PatternReplaceFilter gives you the flexibility to use
|
458
457
|
Java Regular expression to replace any sequence of characters
|
459
|
-
matching a pattern with an arbitrary replacement string,
|
458
|
+
matching a pattern with an arbitrary replacement string,
|
460
459
|
which may include back references to portions of the original
|
461
460
|
string matched by the pattern.
|
462
|
-
|
461
|
+
|
463
462
|
See the Java Regular Expression documentation for more
|
464
463
|
information on pattern and replacement string syntax.
|
465
|
-
|
464
|
+
|
466
465
|
http://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html
|
467
466
|
-->
|
468
467
|
<filter class="solr.PatternReplaceFilterFactory"
|
@@ -480,12 +479,12 @@
|
|
480
479
|
</fieldType>
|
481
480
|
|
482
481
|
<!-- since fields of this type are by default not stored or indexed,
|
483
|
-
any data added to them will be ignored outright. -->
|
482
|
+
any data added to them will be ignored outright. -->
|
484
483
|
<fieldType name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
|
485
484
|
|
486
485
|
<!-- This point type indexes the coordinates as separate fields (subFields)
|
487
486
|
If subFieldType is defined, it references a type, and a dynamic field
|
488
|
-
definition is created matching *___<typename>. Alternately, if
|
487
|
+
definition is created matching *___<typename>. Alternately, if
|
489
488
|
subFieldSuffix is defined, that is used to create the subFields.
|
490
489
|
Example: if subFieldType="double", then the coordinates would be
|
491
490
|
indexed in fields myloc_0___double,myloc_1___double.
|
@@ -496,9 +495,6 @@
|
|
496
495
|
-->
|
497
496
|
<fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
|
498
497
|
|
499
|
-
<!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
|
500
|
-
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
|
501
|
-
|
502
498
|
<!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
|
503
499
|
For more information about this and other Spatial fields new to Solr 4, see:
|
504
500
|
http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
|
@@ -101,7 +101,7 @@ describe SolrWrapper::Configuration do
|
|
101
101
|
let(:options) { { mirror_url: 'http://lib-solr-mirror.princeton.edu/dist/', version: '7.2.1' } }
|
102
102
|
|
103
103
|
it 'is the URL to the artifact on the preferred mirror' do
|
104
|
-
expect(config.mirror_url).to eq 'http://lib-solr-mirror.princeton.edu/dist/lucene/solr/7.2.1/solr-7.2.1.
|
104
|
+
expect(config.mirror_url).to eq 'http://lib-solr-mirror.princeton.edu/dist/lucene/solr/7.2.1/solr-7.2.1.tgz'
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solr_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rubyzip
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: ruby-progressbar
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +179,7 @@ files:
|
|
193
179
|
- lib/solr_wrapper/runner.rb
|
194
180
|
- lib/solr_wrapper/settings.rb
|
195
181
|
- lib/solr_wrapper/tasks/solr_wrapper.rake
|
182
|
+
- lib/solr_wrapper/tgz_extractor.rb
|
196
183
|
- lib/solr_wrapper/version.rb
|
197
184
|
- solr_wrapper.gemspec
|
198
185
|
- spec/fixtures/another_sample_config.yml
|