geoblacklight_sidecar_images 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +4 -4
- data/.travis.yml +4 -4
- data/Gemfile +2 -2
- data/README.md +8 -7
- data/Rakefile +0 -3
- data/app/assets/stylesheets/geoblacklight_sidecar_images/_gblsci.scss +13 -0
- data/app/assets/stylesheets/geoblacklight_sidecar_images/application.scss +10 -0
- data/app/assets/stylesheets/geoblacklight_sidecar_images/modules/_results.scss +10 -0
- data/app/jobs/geoblacklight_sidecar_images/store_image_job.rb +18 -0
- data/app/models/{geoblacklight_sidecar_images/application_record.rb → application_record.rb} +0 -0
- data/{lib/generators/geoblacklight_sidecar_images/templates → app}/models/concerns/wms_rewrite_concern.rb +0 -0
- data/{lib/generators/geoblacklight_sidecar_images/templates → app}/models/sidecar_image_state_machine.rb +1 -1
- data/{lib/generators/geoblacklight_sidecar_images/templates → app}/models/sidecar_image_transition.rb +0 -0
- data/{lib/generators/geoblacklight_sidecar_images/templates → app}/models/solr_document_sidecar.rb +3 -3
- data/app/services/geoblacklight_sidecar_images/image_service.rb +226 -0
- data/app/services/geoblacklight_sidecar_images/image_service/dynamic_map_layer.rb +15 -0
- data/app/services/geoblacklight_sidecar_images/image_service/iiif.rb +17 -0
- data/app/services/geoblacklight_sidecar_images/image_service/image_map_layer.rb +17 -0
- data/app/services/geoblacklight_sidecar_images/image_service/tiled_map_layer.rb +15 -0
- data/app/services/geoblacklight_sidecar_images/image_service/wms.rb +28 -0
- data/geoblacklight_sidecar_images.gemspec +5 -5
- data/lib/generators/geoblacklight_sidecar_images/install_generator.rb +9 -9
- data/lib/generators/geoblacklight_sidecar_images/jobs_generator.rb +1 -6
- data/lib/generators/geoblacklight_sidecar_images/models_generator.rb +0 -28
- data/lib/generators/geoblacklight_sidecar_images/templates/gblsci.scss +3 -0
- data/lib/generators/geoblacklight_sidecar_images/templates/views/catalog/_index_split_default.html.erb +28 -28
- data/lib/geoblacklight_sidecar_images/version.rb +1 -1
- data/lib/tasks/geoblacklight_sidecar_images_tasks.rake +10 -13
- data/solr/conf/schema.xml +11 -3
- data/solr/conf/solrconfig.xml +4 -4
- data/spec/fixtures/files/README.md +40 -0
- data/spec/fixtures/files/actual-papermap1.json +1 -1
- data/spec/fixtures/files/actual-point1.json +26 -13
- data/spec/fixtures/files/actual-polygon1.json +1 -1
- data/spec/fixtures/files/actual-raster1.json +6 -5
- data/spec/fixtures/files/bbox-spans-180.json +20 -0
- data/spec/fixtures/files/cornell_html_metadata.json +42 -0
- data/spec/fixtures/files/esri-dynamic-layer-all-layers.json +36 -34
- data/spec/fixtures/files/esri-dynamic-layer-single-layer.json +30 -27
- data/spec/fixtures/files/esri-feature-layer.json +37 -24
- data/spec/fixtures/files/esri-image-map-layer.json +39 -18
- data/spec/fixtures/files/iiif-eastern-hemisphere.json +30 -0
- data/spec/fixtures/files/index-map-polygon-no-downloadurl.json +37 -0
- data/spec/fixtures/files/index-map-polygon.json +37 -0
- data/spec/fixtures/files/index-map-stanford.json +37 -0
- data/spec/fixtures/files/index_map_point.json +27 -0
- data/spec/fixtures/files/princeton-child1.json +30 -0
- data/spec/fixtures/files/princeton-child2.json +30 -0
- data/spec/fixtures/files/princeton-child3.json +30 -0
- data/spec/fixtures/files/princeton-child4.json +30 -0
- data/spec/fixtures/files/princeton-parent.json +25 -0
- data/spec/fixtures/files/public_direct_download.json +13 -7
- data/spec/fixtures/files/public_polygon_mit.json +15 -27
- data/spec/fixtures/files/restricted-line.json +7 -6
- data/spec/fixtures/files/umn_iiif_jpg.json +1 -2
- data/spec/fixtures/files/umn_metro_result1.json +30 -26
- data/spec/fixtures/files/umn_state_result1.json +25 -18
- data/spec/fixtures/files/umn_state_result2.json +27 -25
- data/spec/fixtures/files/uva_slug_colon.json +25 -0
- data/spec/jobs/store_image_job_spec.rb +2 -2
- data/spec/models/solr_document_sidecar_spec.rb +1 -1
- data/spec/services/image_service_spec.rb +1 -1
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
- data/template.rb +3 -3
- metadata +55 -30
- data/app/assets/config/geoblacklight_sidecar_images_manifest.js +0 -2
- data/app/assets/images/geoblacklight_sidecar_images/.keep +0 -0
- data/app/assets/javascripts/geoblacklight_sidecar_images/application.js +0 -13
- data/app/assets/stylesheets/geoblacklight_sidecar_images/application.css +0 -15
- data/lib/generators/geoblacklight_sidecar_images/services_generator.rb +0 -19
- data/lib/generators/geoblacklight_sidecar_images/templates/assets/javascripts/geoblacklight.js +0 -9
- data/lib/generators/geoblacklight_sidecar_images/templates/assets/stylesheets/geoblacklight.scss +0 -3
- data/lib/generators/geoblacklight_sidecar_images/templates/jobs/store_image_job.rb +0 -17
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service.rb +0 -224
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service/dynamic_map_layer.rb +0 -13
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service/iiif.rb +0 -15
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service/image_map_layer.rb +0 -15
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service/tiled_map_layer.rb +0 -13
- data/lib/generators/geoblacklight_sidecar_images/templates/services/image_service/wms.rb +0 -26
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GeoblacklightSidecarImages
|
4
|
+
class ImageService
|
5
|
+
module DynamicMapLayer
|
6
|
+
##
|
7
|
+
# Formats and returns a thumbnail url from an ESRI Dynamic Map Layer endpoint.
|
8
|
+
# @param [SolrDocument]
|
9
|
+
# @return [String] image url
|
10
|
+
def self.image_url(document, _size)
|
11
|
+
"#{document.viewer_endpoint}/info/thumbnail/thumbnail.png"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GeoblacklightSidecarImages
|
4
|
+
class ImageService
|
5
|
+
module Iiif
|
6
|
+
##
|
7
|
+
# Formats and returns a thumbnail url from an International Image
|
8
|
+
# Interoperability Framework endpoint.
|
9
|
+
# @param [SolrDocument]
|
10
|
+
# @param [Integer] thumbnail size
|
11
|
+
# @return [String] iiif thumbnail url
|
12
|
+
def self.image_url(document, size)
|
13
|
+
"#{document.viewer_endpoint.gsub('info.json', '')}full/#{size},/0/default.jpg"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GeoblacklightSidecarImages
|
4
|
+
class ImageService
|
5
|
+
module ImageMapLayer
|
6
|
+
##
|
7
|
+
# Formats and returns a thumbnail url from an ESRI Image Map Layer endpoint.
|
8
|
+
# information about the layer.
|
9
|
+
# @param [SolrDocument]
|
10
|
+
# @param [Integer] thumbnail size
|
11
|
+
# @return [String] thumbnail url
|
12
|
+
def self.image_url(document, _size)
|
13
|
+
"#{document.viewer_endpoint}/info/thumbnail/thumbnail.png"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GeoblacklightSidecarImages
|
4
|
+
class ImageService
|
5
|
+
module TiledMapLayer
|
6
|
+
##
|
7
|
+
# Formats and returns an image url from an ESRI Tiled Map Layer endpoint.
|
8
|
+
# @param [SolrDocument]
|
9
|
+
# @return [String] image url
|
10
|
+
def self.image_url(document, _size)
|
11
|
+
"#{document.viewer_endpoint}/info/thumbnail/thumbnail.png"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GeoblacklightSidecarImages
|
4
|
+
class ImageService
|
5
|
+
module Wms
|
6
|
+
##
|
7
|
+
# Formats and returns a thumbnail url from a Web Map Service endpoint.
|
8
|
+
# This utilizes the GeoServer specific 'reflect' service to generate
|
9
|
+
# parameters like bbox that are difficult to tweak without more detailed
|
10
|
+
# information about the layer.
|
11
|
+
# @param [SolrDocument]
|
12
|
+
# @param [Integer] thumbnail size
|
13
|
+
# @return [String] wms thumbnail url
|
14
|
+
def self.image_url(document, size)
|
15
|
+
# Swap proxy url with princeton geoserver url.
|
16
|
+
# Thumbnail requests send geoserver auth.
|
17
|
+
endpoint = document.viewer_endpoint.gsub(Settings.PROXY_GEOSERVER_URL,
|
18
|
+
Settings.INSTITUTION_GEOSERVER_URL)
|
19
|
+
"#{endpoint}/reflect?" \
|
20
|
+
'&FORMAT=image%2Fpng' \
|
21
|
+
'&TRANSPARENT=TRUE' \
|
22
|
+
"&LAYERS=#{document['layer_id_s']}" \
|
23
|
+
"&WIDTH=#{size}" \
|
24
|
+
"&HEIGHT=#{size}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.version = GeoblacklightSidecarImages::VERSION
|
10
10
|
s.authors = ['Eric Larson', 'Eliot Jordan']
|
11
11
|
s.email = ['ewlarson@umn.edu']
|
12
|
-
s.homepage = 'https://github.com/
|
12
|
+
s.homepage = 'https://github.com/geoblacklight/geoblacklight_sidecar_images'
|
13
13
|
s.summary = 'Store local copies of remote imagery in GeoBlacklight'
|
14
14
|
s.license = 'Apache 2.0'
|
15
15
|
|
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
s.require_paths = ['lib']
|
20
20
|
|
21
|
-
s.add_dependency 'geoblacklight', '~>
|
22
|
-
s.add_dependency 'mini_magick', '~> 4.
|
21
|
+
s.add_dependency 'geoblacklight', '~> 2.0'
|
22
|
+
s.add_dependency 'mini_magick', '~> 4.9.4'
|
23
23
|
s.add_dependency 'image_processing', '~> 1.6'
|
24
24
|
s.add_dependency 'statesman', '~> 3.4'
|
25
25
|
s.add_dependency 'mimemagic', '~> 0.3'
|
@@ -27,9 +27,9 @@ Gem::Specification.new do |s|
|
|
27
27
|
|
28
28
|
s.add_development_dependency 'byebug'
|
29
29
|
s.add_development_dependency 'capybara'
|
30
|
-
s.add_development_dependency '
|
30
|
+
s.add_development_dependency 'webdrivers'
|
31
31
|
s.add_development_dependency 'database_cleaner', '~> 1.3'
|
32
|
-
s.add_development_dependency 'engine_cart', '~>
|
32
|
+
s.add_development_dependency 'engine_cart', '~> 2.2'
|
33
33
|
s.add_development_dependency 'rspec-rails', '~> 3.0'
|
34
34
|
s.add_development_dependency 'rubocop', '~> 0.60.0'
|
35
35
|
s.add_development_dependency 'rubocop-rspec', '~> 1.30.0'
|
@@ -16,23 +16,23 @@ GBLSI_THUMBNAIL_FIELD: 'thumbnail_path_ss'"
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def generate_gblsci_assets
|
20
|
+
copy_file 'gblsci.scss', 'app/assets/stylesheets/gblsci.scss'
|
21
|
+
end
|
22
|
+
|
23
|
+
def generate_gblsci_example_docs
|
20
24
|
generate 'geoblacklight_sidecar_images:example_docs'
|
21
25
|
end
|
22
26
|
|
23
|
-
def
|
27
|
+
def generate_gblsci_jobs
|
24
28
|
generate 'geoblacklight_sidecar_images:jobs'
|
25
29
|
end
|
26
30
|
|
27
|
-
def
|
31
|
+
def generate_gblsci_models
|
28
32
|
generate 'geoblacklight_sidecar_images:models'
|
29
33
|
end
|
30
34
|
|
31
|
-
def
|
32
|
-
generate 'geoblacklight_sidecar_images:services'
|
33
|
-
end
|
34
|
-
|
35
|
-
def generate_geoblacklight_views
|
35
|
+
def generate_gblsci_views
|
36
36
|
generate 'geoblacklight_sidecar_images:views'
|
37
37
|
end
|
38
38
|
|
@@ -40,7 +40,7 @@ GBLSI_THUMBNAIL_FIELD: 'thumbnail_path_ss'"
|
|
40
40
|
rake 'active_storage:install'
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
43
|
+
def generate_gblsci_config
|
44
44
|
generate 'geoblacklight_sidecar_images:config'
|
45
45
|
end
|
46
46
|
|
@@ -8,14 +8,9 @@ module GeoblacklightSidecarImages
|
|
8
8
|
|
9
9
|
desc <<-DESCRIPTION
|
10
10
|
This generator makes the following changes to your application:
|
11
|
-
1.
|
12
|
-
2. Configures a default development environment queue adapter
|
11
|
+
1. Configures a default development environment queue adapter
|
13
12
|
DESCRIPTION
|
14
13
|
|
15
|
-
def create_store_image_jobs
|
16
|
-
copy_file 'jobs/store_image_job.rb', 'app/jobs/store_image_job.rb'
|
17
|
-
end
|
18
|
-
|
19
14
|
def config_development_jobs_queue_adapter
|
20
15
|
job_config = <<-"JOBS"
|
21
16
|
config.active_job.queue_adapter = :inline
|
@@ -42,34 +42,6 @@ module GeoblacklightSidecarImages
|
|
42
42
|
inject_into_file 'app/models/solr_document.rb', sidecar, before: /^end/
|
43
43
|
end
|
44
44
|
|
45
|
-
def create_solr_document_sidecar
|
46
|
-
copy_file(
|
47
|
-
'models/solr_document_sidecar.rb',
|
48
|
-
'app/models/solr_document_sidecar.rb'
|
49
|
-
)
|
50
|
-
end
|
51
|
-
|
52
|
-
def create_sidecar_image_transition
|
53
|
-
copy_file(
|
54
|
-
'models/sidecar_image_transition.rb',
|
55
|
-
'app/models/sidecar_image_transition.rb'
|
56
|
-
)
|
57
|
-
end
|
58
|
-
|
59
|
-
def create_sidecar_image_state_machine
|
60
|
-
copy_file(
|
61
|
-
'models/sidecar_image_state_machine.rb',
|
62
|
-
'app/models/sidecar_image_state_machine.rb'
|
63
|
-
)
|
64
|
-
end
|
65
|
-
|
66
|
-
def create_wms_rewrite_concern
|
67
|
-
copy_file(
|
68
|
-
'models/concerns/wms_rewrite_concern.rb',
|
69
|
-
'app/models/concerns/wms_rewrite_concern.rb'
|
70
|
-
)
|
71
|
-
end
|
72
|
-
|
73
45
|
def include_wms_rewrite_solrdocument
|
74
46
|
inject_into_file(
|
75
47
|
'app/models/solr_document.rb',
|
@@ -1,33 +1,33 @@
|
|
1
1
|
<% # header bar for doc items in index view -%>
|
2
2
|
<%= content_tag :div, class: 'documentHeader row', data: { layer_id: document.id, bbox: document.bounding_box_as_wsen } do %>
|
3
|
-
<div class=
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<%=
|
10
|
-
</
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
</
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
</
|
3
|
+
<div class='status-icons'>
|
4
|
+
<%= render partial: 'header_icons', locals: { document: document } %>
|
5
|
+
</div>
|
6
|
+
<h3 class="index_title col-sm-9s cosl-lg-10 text-span">
|
7
|
+
<% counter = document_counter_with_offset(document_counter) %>
|
8
|
+
<span class="document-counter">
|
9
|
+
<%= t('blacklight.search.documents.counter', :counter => counter) if counter %>
|
10
|
+
</span>
|
11
|
+
<%= link_to_document document, counter: counter, title: document[blacklight_config.index.title_field] %>
|
12
|
+
</h3>
|
13
|
+
|
14
|
+
<div class='col-md-12 more-info-area'>
|
15
|
+
<div class='media'>
|
16
|
+
<% if document.sidecar.image.attached? %>
|
17
|
+
<% if document.sidecar.image.variable? %>
|
18
|
+
<%= image_tag document.sidecar.image.variant(resize: "100x100"), {class: 'mr-3'} %>
|
19
|
+
<% else %>
|
20
|
+
<%= image_tag document.sidecar.image, {class: 'mr-3'} %>
|
21
|
+
<% end %>
|
22
|
+
<% else %>
|
23
|
+
<span class="icon square mr-3" title="<%=document[Settings.FIELDS.GEOM_TYPE]%>">
|
24
|
+
<%= geoblacklight_icon(document[Settings.FIELDS.GEOM_TYPE]) %>
|
25
|
+
</span>
|
26
|
+
<% end %>
|
27
|
+
<div class='media-body'>
|
28
|
+
<small>
|
29
|
+
<%= geoblacklight_present(:index_fields_display, document) %>
|
30
|
+
</small>
|
31
31
|
</div>
|
32
32
|
</div>
|
33
33
|
</div>
|
@@ -3,9 +3,8 @@ require 'csv'
|
|
3
3
|
namespace :gblsci do
|
4
4
|
namespace :sample_data do
|
5
5
|
desc 'Ingests a directory of geoblacklight.json files'
|
6
|
-
task :
|
7
|
-
|
8
|
-
Dir.glob(File.join(args[:directory], '**', '*.json')).each do |fn|
|
6
|
+
task seed: :environment do
|
7
|
+
Dir.glob(File.join(Rails.root, 'solr', 'geoblacklight', 'example_docs', '**', '*.json')).each do |fn|
|
9
8
|
puts "Ingesting #{fn}"
|
10
9
|
begin
|
11
10
|
Blacklight.default_index.connection.add(JSON.parse(File.read(fn)))
|
@@ -38,7 +37,7 @@ namespace :gblsci do
|
|
38
37
|
results.docs.each do |document|
|
39
38
|
sleep(1)
|
40
39
|
begin
|
41
|
-
StoreImageJob.perform_later(document.id)
|
40
|
+
GeoblacklightSidecarImages::StoreImageJob.perform_later(document.id)
|
42
41
|
rescue Blacklight::Exceptions::RecordNotFound
|
43
42
|
next
|
44
43
|
end
|
@@ -84,10 +83,9 @@ namespace :gblsci do
|
|
84
83
|
puts "#{state} - #{sidecars.size}"
|
85
84
|
|
86
85
|
sidecars.each do |sc|
|
87
|
-
cat = CatalogController.new
|
88
86
|
begin
|
89
|
-
|
90
|
-
StoreImageJob.perform_later(
|
87
|
+
document = Geoblacklight::SolrDocument.find(sc.document_id)
|
88
|
+
GeoblacklightSidecarImages::StoreImageJob.perform_later(document.id)
|
91
89
|
rescue
|
92
90
|
puts "orphaned / #{sc.document_id}"
|
93
91
|
end
|
@@ -121,14 +119,14 @@ namespace :gblsci do
|
|
121
119
|
sidecars.each do |sc|
|
122
120
|
cat = CatalogController.new
|
123
121
|
begin
|
124
|
-
|
122
|
+
document = Geoblacklight::SolrDocument.find(sc.document_id)
|
125
123
|
writer << [
|
126
124
|
sc.id,
|
127
125
|
sc.document_id,
|
128
126
|
sc.image_state.current_state,
|
129
|
-
|
130
|
-
|
131
|
-
|
127
|
+
document._source['layer_geom_type_s'],
|
128
|
+
document._source['dc_title_s'],
|
129
|
+
document._source['dct_provenance_s'],
|
132
130
|
sc.image_state.last_transition.metadata['exception'],
|
133
131
|
sc.image_state.last_transition.metadata['viewer_protocol'],
|
134
132
|
sc.image_state.last_transition.metadata['image_url'],
|
@@ -163,9 +161,8 @@ namespace :gblsci do
|
|
163
161
|
# Remove all images
|
164
162
|
sidecars = SolrDocumentSidecar.all
|
165
163
|
sidecars.each do |sc|
|
166
|
-
cat = CatalogController.new
|
167
164
|
begin
|
168
|
-
|
165
|
+
document = Geoblacklight::SolrDocument.find(sc.document_id)
|
169
166
|
rescue
|
170
167
|
sc.destroy
|
171
168
|
puts "orphaned / #{sc.document_id} / destroyed"
|
data/solr/conf/schema.xml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<schema name="geoblacklight-schema" version="1.
|
2
|
+
<schema name="geoblacklight-schema" version="1.7">
|
3
3
|
<uniqueKey>layer_slug_s</uniqueKey>
|
4
4
|
<fields>
|
5
5
|
<field name="_version_" type="long" stored="true" indexed="true"/>
|
@@ -64,6 +64,8 @@
|
|
64
64
|
<dynamicField name="*_pt" type="location" stored="true" indexed="true"/>
|
65
65
|
<dynamicField name="*_bbox" type="location_rpt" stored="true" indexed="true"/><!-- deprecated -->
|
66
66
|
<dynamicField name="*_geom" type="location_rpt" stored="true" indexed="true"/>
|
67
|
+
<dynamicField name="*_bboxtype" type="bbox" stored="true" indexed="true"/>
|
68
|
+
|
67
69
|
</fields>
|
68
70
|
|
69
71
|
<types>
|
@@ -123,7 +125,6 @@
|
|
123
125
|
<analyzer>
|
124
126
|
<tokenizer class="solr.StandardTokenizerFactory"/>
|
125
127
|
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/>
|
126
|
-
<filter class="solr.StandardFilterFactory"/>
|
127
128
|
<filter class="solr.LowerCaseFilterFactory"/>
|
128
129
|
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
|
129
130
|
</analyzer>
|
@@ -133,7 +134,6 @@
|
|
133
134
|
<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
|
134
135
|
<analyzer>
|
135
136
|
<tokenizer class="solr.KeywordTokenizerFactory"/>
|
136
|
-
<filter class="solr.StandardFilterFactory"/>
|
137
137
|
<filter class="solr.LowerCaseFilterFactory"/>
|
138
138
|
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
|
139
139
|
</analyzer>
|
@@ -144,6 +144,11 @@
|
|
144
144
|
|
145
145
|
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
|
146
146
|
geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/>
|
147
|
+
<!-- Adding field type for bboxField that enables, among other things, overlap ratio calculations -->
|
148
|
+
<fieldType name="bbox" class="solr.BBoxField"
|
149
|
+
geo="true" distanceUnits="kilometers" numberType="pdouble" />
|
150
|
+
<fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>
|
151
|
+
|
147
152
|
|
148
153
|
</types>
|
149
154
|
|
@@ -187,4 +192,7 @@
|
|
187
192
|
<copyField source="dct_provenance_s" dest="suggest"/>
|
188
193
|
<copyField source="dc_subject_sm" dest="suggest"/>
|
189
194
|
<copyField source="dct_spatial_sm" dest="suggest"/>
|
195
|
+
|
196
|
+
<!-- for bbox value -->
|
197
|
+
<copyField source="solr_geom" dest="solr_bboxtype"/>
|
190
198
|
</schema>
|
data/solr/conf/solrconfig.xml
CHANGED
@@ -20,15 +20,15 @@
|
|
20
20
|
this file, see http://wiki.apache.org/solr/SolrConfigXml.
|
21
21
|
-->
|
22
22
|
<config>
|
23
|
-
|
23
|
+
|
24
24
|
<!-- Controls what version of Lucene various components of Solr
|
25
25
|
adhere to. Generally, you want to use the latest version to
|
26
26
|
get all bug fixes and improvements. It is highly recommended
|
27
27
|
that you fully re-index after changing this setting as it can
|
28
28
|
affect both how text is indexed and queried.
|
29
29
|
-->
|
30
|
-
<luceneMatchVersion>6
|
31
|
-
|
30
|
+
<luceneMatchVersion>7.6</luceneMatchVersion>
|
31
|
+
|
32
32
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
|
33
33
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
|
34
34
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<schemaFactory class="ClassicIndexSchemaFactory"/>
|
39
39
|
|
40
40
|
<dataDir>${solr.blacklight-core.data.dir:}</dataDir>
|
41
|
-
|
41
|
+
|
42
42
|
<indexConfig>
|
43
43
|
<lockType>${solr.lock.type:native}</lockType>
|
44
44
|
</indexConfig>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Listing of GeoBlacklight .json test documents
|
2
|
+
|
3
|
+
If you add a new document, please add it to the table below, and indicate its purpose.
|
4
|
+
|
5
|
+
| document | purpose |
|
6
|
+
| -------- | ------- |
|
7
|
+
| actual-papermap1 |Nondigitized paper map with a link to a library catalog|
|
8
|
+
| actual-point1 |Point dataset with WMS and WFS|
|
9
|
+
| actual-polygon1 |Polygon dataset (no direct download) with WFS, WMS, and FGDC metadata as XML|
|
10
|
+
| actual-raster1 |Restricted raster layer with WMS and metadata in MODS and ISO 19139|
|
11
|
+
| baruch_ancestor1 |SQLite Database with documentation download. Referenced as parent|
|
12
|
+
| baruch_ancestor2 |Geodatabase with documentation download. Referenced as parent|
|
13
|
+
| baruch_documentation_download |Point dataset with WMS and WFS, documentation download, and two parent records|
|
14
|
+
| bbox-spans-180 |Scanned map with IIIF and direct TIFF download that spans across the 180th meridian|
|
15
|
+
| cornell_html_metadata |Point dataset with WMS, WFS, direct download, and FGDC metadata XML and HTML|
|
16
|
+
| esri-dynamic-layer-single-layer |ArcGIS Dynamic Map Layer with single layer indicated|
|
17
|
+
| esri-feature-layer |ArcGIS Feature Layer - point dataset|
|
18
|
+
| esri-image-map-layer |ArcGIS Image Map Layer with GeoTIFF direct download|
|
19
|
+
| esri-tiled_map_layer |ArcGIS tiled map layer|
|
20
|
+
| esri-wms-layer |Dataset with ArcGIS Dynamic Map Layer, ArcGIS WMS, and direct download|
|
21
|
+
| harvard_raster |Raster with WMS and Harvard style download function|
|
22
|
+
| iiif-eastern-hemisphere |Eastern hemisphere scanned map with IIIF and direct TIFF download|
|
23
|
+
| index_map_point | GeoJSON index map of points |
|
24
|
+
| index_map_polygon | GeoJSON index map of polygons, with a downloadUrl for the index itself |
|
25
|
+
| index_map_polygon-no-downloadurl | GeoJSON index map of polygons, but lacking a downloadUrl for the index itself |
|
26
|
+
| index-map-stanford | old-style (pre-GeoJSON) index map of rectangular polygons |
|
27
|
+
| no_spatial |File without geometry type or solr_geometry (will cause error)|
|
28
|
+
| princeton-child1.json | Child record for testing the `suppressed_b` property |
|
29
|
+
| princeton-child2.json | Child record for testing the `suppressed_b` property |
|
30
|
+
| princeton-child3.json | Child record for testing the `suppressed_b` property |
|
31
|
+
| princeton-child4.json | Child record for testing the `suppressed_b` property |
|
32
|
+
| princeton-parent.json | Parent record for testing the `suppressed_b` property |
|
33
|
+
| public_direct_download | includes a tentative `dcat_distribution_sm` property |
|
34
|
+
| public_iiif_princeton |Scanned map with IIIF|
|
35
|
+
| public_polygon_mit |Polygon shapefile with WMS and WFS|
|
36
|
+
| restricted-line |Restricted line layer with WFS, WMS and metadata in MODS and ISO 19139|
|
37
|
+
| umn_metro_result1.json |Bounding box of metropolitan area and ArcGIS Dynamic Map Layer|
|
38
|
+
| umn_state_result1.json |Bounding box of state area and static image in references|
|
39
|
+
| umn_state_result2.json |Bounding box of state area and raster download|
|
40
|
+
| uva_slug_colon.json | Multipoint dataset with WMS and WFS and a colon in the slug and layer ID |
|