blacklight-spotlight 3.3.0 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/spotlight/pages_controller.rb +1 -1
- data/app/helpers/spotlight/pages_helper.rb +12 -0
- data/app/helpers/spotlight/title_helper.rb +0 -2
- data/app/models/sir_trevor_rails/block.rb +85 -0
- data/app/models/sir_trevor_rails/blocks/displayable.rb +1 -1
- data/app/models/spotlight/page_content/sir_trevor.rb +13 -4
- data/app/models/translation.rb +18 -0
- data/app/views/shared/_site_sidebar.html.erb +1 -1
- data/app/views/spotlight/sir_trevor/blocks/_video_block.html.erb +5 -0
- data/config/i18n-tasks.yml +1 -0
- data/config/locales/spotlight.de.yml +40 -0
- data/lib/generators/spotlight/install_generator.rb +40 -2
- data/lib/generators/spotlight/templates/config/initializers/translation.rb +5 -5
- data/lib/generators/spotlight/templates/solr/config/schema.xml +32 -50
- data/lib/generators/spotlight/templates/solr/config/solrconfig.xml +14 -12
- data/lib/spotlight/engine.rb +1 -1
- data/lib/spotlight/version.rb +1 -1
- data/lib/tasks/spotlight_tasks.rake +20 -0
- data/spec/controllers/spotlight/about_pages_controller_spec.rb +1 -3
- data/spec/controllers/spotlight/catalog_controller_spec.rb +4 -4
- data/spec/controllers/spotlight/contact_forms_controller_spec.rb +2 -2
- data/spec/controllers/spotlight/contacts_controller_spec.rb +2 -2
- data/spec/controllers/spotlight/exhibits_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/feature_pages_controller_spec.rb +2 -2
- data/spec/controllers/spotlight/featured_images_controller_spec.rb +4 -4
- data/spec/controllers/spotlight/groups_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/searches_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/solr_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/tags_controller_spec.rb +1 -1
- data/spec/examples.txt +1506 -1506
- data/spec/features/autocomplete_typeahead_spec.rb +3 -2
- data/spec/features/exhibit_themes_spec.rb +3 -1
- data/spec/i18n_spec.rb +2 -3
- data/spec/lib/migration/iiif_spec.rb +2 -2
- data/spec/models/sir_trevor_rails/block_spec.rb +72 -0
- data/spec/models/solr_document_spec.rb +1 -1
- data/spec/models/spotlight/browse_category_search_builder_spec.rb +3 -1
- data/spec/models/spotlight/page_spec.rb +0 -10
- data/spec/models/translation_spec.rb +12 -0
- data/spec/services/spotlight/etl/pipeline_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -2
- data/spec/support/views/test_view_helpers.rb +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +3 -1
- metadata +98 -11
- data/lib/generators/spotlight/templates/config/initializers/sir_trevor_rails.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc89332ff348ea70e49058e10f7ae4ffe6513218603cb2b13741eefdc15c8f24
|
4
|
+
data.tar.gz: 76ff697064cedf09069292730e9bc3d7b1beac5a8e80e0ededdebbfc8f0008c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23cb9a0b04c40a53e75a91a25a7d1ce88a54b80fd5200fdee257081ed524bea31f77264d7a1a7f17ec82f5ede0dacf08c05707ddb122af99a0a071faa06824cf
|
7
|
+
data.tar.gz: 87dac4804ad58c1c2b08bd1e582dde8f492a68434f193f679a72737ae73bd6a3b2dcf2cded7281e50fd341d07e7a7b369539a0bf5efcfc981b0de5f1b795e59d
|
@@ -16,6 +16,18 @@ module Spotlight
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
def sir_trevor_format(text, format: :markdown)
|
20
|
+
if format.to_s.to_sym == :html
|
21
|
+
sir_trevor_html(text)
|
22
|
+
else
|
23
|
+
sir_trevor_markdown(text)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def sir_trevor_html(text)
|
28
|
+
sanitize(text, tags: %w[b i a br p sup])
|
29
|
+
end
|
30
|
+
|
19
31
|
##
|
20
32
|
# Override the default #sir_trevor_markdown so we can use
|
21
33
|
# a more complete markdown rendered
|
@@ -27,10 +27,8 @@ module Spotlight
|
|
27
27
|
content_tag(:h1, html_content, class: 'page-header')
|
28
28
|
end
|
29
29
|
|
30
|
-
# rubocop:disable Naming/AccessorMethodName
|
31
30
|
def set_html_page_title(title = nil)
|
32
31
|
@page_title = strip_tags(t(:'spotlight.html_title', title: title || t(:'.title', default: :'.header'), application_name: application_name)).html_safe
|
33
32
|
end
|
34
|
-
# rubocop:enable Naming/AccessorMethodName
|
35
33
|
end
|
36
34
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ostruct'
|
4
|
+
|
5
|
+
module SirTrevorRails
|
6
|
+
# Forked from (former) upstream sir-trevor-rails 0.6.2 gem:
|
7
|
+
# https://github.com/madebymany/sir-trevor-rails/blob/931b9554f5268158b4da8817477cdc82e4e2e69c/lib/sir_trevor_rails/block.rb
|
8
|
+
# Copyright (c) 2013-2014 by ITV plc - http://www.itv.com
|
9
|
+
class Block < OpenStruct
|
10
|
+
DEFAULT_FORMAT = :markdown
|
11
|
+
|
12
|
+
def self.from_hash(hash, parent = nil)
|
13
|
+
hash = hash.deep_dup.with_indifferent_access
|
14
|
+
type_klass(hash).new(hash, parent)
|
15
|
+
end
|
16
|
+
|
17
|
+
def format
|
18
|
+
send(:[], :format).present? ? send(:[], :format).to_sym : DEFAULT_FORMAT
|
19
|
+
end
|
20
|
+
|
21
|
+
# Sets a list of custom block types to speed up lookup at runtime.
|
22
|
+
def self.custom_block_types
|
23
|
+
# You can define your custom block types directly here or in your engine config.
|
24
|
+
Spotlight::Engine.config.sir_trevor_widgets
|
25
|
+
end
|
26
|
+
|
27
|
+
def initialize(hash, parent)
|
28
|
+
@raw_data = hash
|
29
|
+
@parent = parent
|
30
|
+
@type = hash[:type].to_sym
|
31
|
+
super(hash[:data])
|
32
|
+
end
|
33
|
+
|
34
|
+
attr_reader :parent, :type
|
35
|
+
|
36
|
+
def to_partial_path
|
37
|
+
"sir_trevor/blocks/#{self.class.name.demodulize.underscore}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def as_json(*_attrs)
|
41
|
+
{
|
42
|
+
type: @type.to_s,
|
43
|
+
data: marshal_dump
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
# Infers the block class.
|
48
|
+
# Safe lookup that tries to identify user created block class.
|
49
|
+
#
|
50
|
+
# @param [Symbol] type
|
51
|
+
def self.block_class(type)
|
52
|
+
type_name = type.to_s.camelize
|
53
|
+
block_name = "#{type_name}Block"
|
54
|
+
if custom_block_types.include?(type_name)
|
55
|
+
begin
|
56
|
+
block_name.constantize
|
57
|
+
rescue NameError
|
58
|
+
block_class!(block_name)
|
59
|
+
end
|
60
|
+
else
|
61
|
+
block_class!(block_name)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Infers the block class.
|
66
|
+
# Failover from block_class.
|
67
|
+
# Safe lookup against the SirTevor::Blocks namespace
|
68
|
+
# If no block is found, create one with given name and inherit from Block class
|
69
|
+
#
|
70
|
+
# @param [Constant] block_name
|
71
|
+
def self.block_class!(block_name)
|
72
|
+
SirTrevorRails::Blocks.const_get(block_name)
|
73
|
+
rescue NameError
|
74
|
+
SirTrevorRails::Blocks.const_set(block_name, Class.new(Block))
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.type_klass(hash)
|
78
|
+
if self == Block
|
79
|
+
block_class(hash[:type].to_sym)
|
80
|
+
else
|
81
|
+
self
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -5,12 +5,21 @@ module Spotlight
|
|
5
5
|
# Sir-Trevor created content
|
6
6
|
class SirTrevor
|
7
7
|
def self.parse(page, attribute)
|
8
|
-
|
9
|
-
|
8
|
+
blocks = page.read_attribute(attribute)
|
9
|
+
blocks ||= [].to_json
|
10
10
|
|
11
|
-
return
|
11
|
+
return [] if blocks.blank?
|
12
12
|
|
13
|
-
|
13
|
+
blocks = JSON.parse(blocks, symbolize_names: true) if blocks.is_a?(String)
|
14
|
+
|
15
|
+
if blocks.is_a?(Hash)
|
16
|
+
blocks = blocks[:data] || blocks['data'] or
|
17
|
+
raise IndexError, 'No block data found'
|
18
|
+
end
|
19
|
+
|
20
|
+
blocks.map do |obj|
|
21
|
+
SirTrevorRails::Block.from_hash(obj, page)
|
22
|
+
end
|
14
23
|
end
|
15
24
|
end
|
16
25
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
unless defined?(Translation)
|
4
|
+
Translation = I18n::Backend::ActiveRecord::Translation
|
5
|
+
Translation.include Spotlight::CustomTranslationExtension
|
6
|
+
|
7
|
+
# Work-around for https://github.com/svenfuchs/i18n-active_record/pull/133
|
8
|
+
if Translation.respond_to?(:to_hash)
|
9
|
+
class << Translation
|
10
|
+
alias to_h to_hash
|
11
|
+
remove_method :to_hash
|
12
|
+
end
|
13
|
+
|
14
|
+
I18n::Backend::ActiveRecord.define_method(:init_translations) do
|
15
|
+
@translations = Translation.to_h
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<li class="nav-item"><%= link_to t(:'spotlight.sites.edit.page_title'), spotlight.edit_site_path, class: 'nav-link' %></li>
|
8
8
|
<% end %>
|
9
9
|
|
10
|
-
<% if can? :
|
10
|
+
<% if can? :manage, Spotlight::Exhibit %>
|
11
11
|
<li class="nav-item"><%= link_to t(:'spotlight.sites.edit_exhibits.page_title'), spotlight.edit_site_exhibits_path, class: 'nav-link' %></li>
|
12
12
|
<li class="nav-item"><%= link_to t(:'spotlight.admin_users.index.page_title'), spotlight.admin_users_path, class: 'nav-link' %></li>
|
13
13
|
<% end %>
|
data/config/i18n-tasks.yml
CHANGED
@@ -65,6 +65,7 @@ ignore_unused:
|
|
65
65
|
- helpers.action.{edit,edit_long,new,view} # app/helpers/spotlight/crud_link_helpers.rb
|
66
66
|
- helpers.action.spotlight/search.edit_long # app/views/spotlight/searches/_search.html.erb
|
67
67
|
- spotlight.about_pages.page_options.published # app/views/spotlight/about_pages/_page_options.html.erb
|
68
|
+
- spotlight.job_trackers.show.messages.status.{completed,enqueued,failed,missing,pending} # app/views/spotlight/job_trackers/show.html.erb
|
68
69
|
- helpers.submit.contact_form.create # app/views/spotlight/shared/_report_a_problem.html.erb
|
69
70
|
- activerecord.help.spotlight/exhibit.tag_list # app/views/spotlight/exhibits/_form.html.erb
|
70
71
|
- helpers.label.solr_document.exhibit_tag_list # app/views/spotlight/catalog/_edit_default.html.erb
|
@@ -0,0 +1,40 @@
|
|
1
|
+
de:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
spotlight/contact_form:
|
5
|
+
email: E-Mail Adresse
|
6
|
+
message: Nachricht
|
7
|
+
name: Name
|
8
|
+
helpers:
|
9
|
+
action:
|
10
|
+
cancel: Abbrechen
|
11
|
+
submit:
|
12
|
+
contact_form:
|
13
|
+
create: Senden
|
14
|
+
created: Vielen Dank. Ihre Feedback wurde gesendet.
|
15
|
+
spotlight:
|
16
|
+
about_pages:
|
17
|
+
contacts:
|
18
|
+
header: Kontakt
|
19
|
+
header_links:
|
20
|
+
contact: Feedback
|
21
|
+
shared:
|
22
|
+
report_a_problem:
|
23
|
+
honeypot_field_explanation: Bitte ignorieren Sie dieses Textfeld. Es wird verwendet, um Spam zu erkennen. Wenn Sie etwas hier eingeben, wird Ihre Nachricht nicht gesendet.
|
24
|
+
title: Kontakten Sie Uns
|
25
|
+
browse:
|
26
|
+
search:
|
27
|
+
item_count:
|
28
|
+
one: "%{count} Suchergebnisse"
|
29
|
+
other: "%{count} Suchergebnisse"
|
30
|
+
search_box:
|
31
|
+
label: Innerhalb dieser Kategorie suchen
|
32
|
+
placeholder: Suchen…
|
33
|
+
reset: Zurücksetzen
|
34
|
+
submit: Innerhalb dieser Kategorie suchen
|
35
|
+
success:
|
36
|
+
expand_html: Suche erweitern <a href="%{expand_search_url}">"%{browse_query}"</a>.
|
37
|
+
result_number_html: <strong> %{search_size} Suchergebnisse von %{parent_search_count} Gesamteinheiten in dieser Suchkategorie gefunden</strong>.
|
38
|
+
zero_results:
|
39
|
+
expand_html: <a href="%{clear_search_url}">Suche zurücksetzen</a> oder <a href="%{expand_search_url}"> erweitern "%{browse_query}"</a>.
|
40
|
+
result_number: Es können keine Suchergebnisse gefunden werden.
|
@@ -11,7 +11,7 @@ module Spotlight
|
|
11
11
|
class_option :mailer_default_url_host, type: :string, default: '' # e.g. localhost:3000
|
12
12
|
|
13
13
|
# we're not (yet) using webpacker, so we need to re-add sprockets functionality
|
14
|
-
def
|
14
|
+
def add_js_rails6
|
15
15
|
return unless Rails.version.to_i == 6
|
16
16
|
|
17
17
|
gem 'coffee-rails', '~> 4.2'
|
@@ -29,6 +29,12 @@ module Spotlight
|
|
29
29
|
run 'bundle exec rails webpacker:install'
|
30
30
|
end
|
31
31
|
|
32
|
+
def add_js_rails7
|
33
|
+
return unless Rails.version.to_i == 7
|
34
|
+
|
35
|
+
append_to_file 'app/assets/javascripts/application.js', "\n//= require_tree .\n"
|
36
|
+
end
|
37
|
+
|
32
38
|
def inject_spotlight_routes
|
33
39
|
route "mount Spotlight::Engine, at: 'spotlight'"
|
34
40
|
gsub_file 'config/routes.rb', /^\s*root.*/ do |match|
|
@@ -44,6 +50,8 @@ module Spotlight
|
|
44
50
|
end
|
45
51
|
|
46
52
|
def riiif
|
53
|
+
gem 'riiif'
|
54
|
+
Bundler.with_clean_env { run 'bundle install' }
|
47
55
|
route "mount Riiif::Engine => '/images', as: 'riiif'"
|
48
56
|
copy_file 'config/initializers/riiif.rb'
|
49
57
|
end
|
@@ -124,7 +132,7 @@ module Spotlight
|
|
124
132
|
end
|
125
133
|
|
126
134
|
def add_osd_viewer
|
127
|
-
gem 'blacklight-gallery', '~>
|
135
|
+
gem 'blacklight-gallery', '~> 4.0'
|
128
136
|
bundle_install
|
129
137
|
generate 'blacklight_gallery:install'
|
130
138
|
end
|
@@ -169,6 +177,36 @@ module Spotlight
|
|
169
177
|
copy_file 'config/initializers/translation.rb'
|
170
178
|
end
|
171
179
|
|
180
|
+
def configure_queue
|
181
|
+
insert_into_file 'config/application.rb', after: "< Rails::Application\n" do
|
182
|
+
<<-EOF
|
183
|
+
config.active_job.queue_adapter = ENV["RAILS_QUEUE"]&.to_sym || :sidekiq
|
184
|
+
EOF
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
def configure_logging
|
189
|
+
insert_into_file 'config/application.rb', after: "< Rails::Application\n" do
|
190
|
+
<<-EOF
|
191
|
+
# Logging
|
192
|
+
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
193
|
+
config.log_level = :debug
|
194
|
+
config.log_formatter = ::Logger::Formatter.new
|
195
|
+
# log to stdout
|
196
|
+
logger = ActiveSupport::Logger.new(STDOUT)
|
197
|
+
logger.formatter = config.log_formatter
|
198
|
+
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
199
|
+
# Print deprecation notices to the Rails logger.
|
200
|
+
config.active_support.deprecation = :log
|
201
|
+
# Raise an error on page load if there are pending migrations.
|
202
|
+
config.active_record.migration_error = :page_load
|
203
|
+
# Highlight code that triggered database queries in logs.
|
204
|
+
config.active_record.verbose_query_logs = true
|
205
|
+
end
|
206
|
+
EOF
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
172
210
|
private
|
173
211
|
|
174
212
|
def bundle_install
|
@@ -3,17 +3,17 @@
|
|
3
3
|
require 'i18n/backend/active_record'
|
4
4
|
require 'i18n/backend/fallbacks'
|
5
5
|
|
6
|
-
Translation = I18n::Backend::ActiveRecord::Translation
|
7
|
-
|
8
6
|
ActiveSupport::Reloader.to_prepare do
|
9
|
-
if
|
7
|
+
# Don't allow initializer to break if DB doesn't exist yet
|
8
|
+
# see: https://github.com/projectblacklight/spotlight/issues/2133
|
9
|
+
if ENV['SKIP_TRANSLATION'].blank?
|
10
|
+
raise unless Translation.table_exists?
|
11
|
+
|
10
12
|
##
|
11
13
|
# Sets up the new Spotlight Translation backend, backed by ActiveRecord. To
|
12
14
|
# turn on the ActiveRecord backend, uncomment the following lines.
|
13
|
-
|
14
15
|
I18n.backend = I18n::Backend::ActiveRecord.new
|
15
16
|
I18n::Backend::ActiveRecord.include I18n::Backend::Memoize
|
16
|
-
Translation.include Spotlight::CustomTranslationExtension
|
17
17
|
I18n::Backend::Simple.include I18n::Backend::Memoize
|
18
18
|
I18n::Backend::Simple.include I18n::Backend::Pluralization
|
19
19
|
I18n::Backend::Simple.include I18n::Backend::Fallbacks
|
@@ -3,14 +3,14 @@
|
|
3
3
|
<!-- NOTE: various comments and unused configuration possibilities have been purged
|
4
4
|
from this file. Please refer to http://wiki.apache.org/solr/SchemaXml,
|
5
5
|
as well as the default schema file included with Solr -->
|
6
|
-
|
6
|
+
|
7
7
|
<uniqueKey>id</uniqueKey>
|
8
|
-
|
8
|
+
|
9
9
|
<fields>
|
10
10
|
<field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
|
11
11
|
<field name="_version_" type="long" indexed="true" stored="true"/>
|
12
12
|
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
|
13
|
-
|
13
|
+
|
14
14
|
<field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
15
15
|
<field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
16
16
|
<field name="original_pid_tesim" type="pid_text" stored="true" indexed="true" multiValued="true"/>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
-->
|
37
37
|
<dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
38
38
|
<dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
39
|
-
|
39
|
+
|
40
40
|
<!-- English text (_te...) -->
|
41
41
|
<!--
|
42
42
|
<dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
|
@@ -52,7 +52,7 @@
|
|
52
52
|
-->
|
53
53
|
<dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
|
54
54
|
<dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
55
|
-
|
55
|
+
|
56
56
|
<!-- string (_s...) -->
|
57
57
|
<!--
|
58
58
|
<dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
|
@@ -65,7 +65,7 @@
|
|
65
65
|
<!--
|
66
66
|
<dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
|
67
67
|
-->
|
68
|
-
|
68
|
+
|
69
69
|
<!-- integer (_i...) -->
|
70
70
|
<!--
|
71
71
|
<dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
|
@@ -75,7 +75,7 @@
|
|
75
75
|
<dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
|
76
76
|
<dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
|
77
77
|
<dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
|
78
|
-
|
78
|
+
|
79
79
|
<!-- trie integer (_it...) (for faster range queries) -->
|
80
80
|
<!--
|
81
81
|
<dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
|
@@ -85,7 +85,7 @@
|
|
85
85
|
<dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
|
86
86
|
<dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
|
87
87
|
<dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
|
88
|
-
|
88
|
+
|
89
89
|
<!-- date (_dt...) -->
|
90
90
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
91
91
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
|
@@ -97,7 +97,7 @@
|
|
97
97
|
<dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
|
98
98
|
<dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
|
99
99
|
<dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
|
100
|
-
|
100
|
+
|
101
101
|
<!-- trie date (_dtt...) (for faster range queries) -->
|
102
102
|
<!--
|
103
103
|
<dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
|
@@ -107,7 +107,7 @@
|
|
107
107
|
<dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
|
108
108
|
<dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
|
109
109
|
<dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
|
110
|
-
|
110
|
+
|
111
111
|
<!-- long (_l...) -->
|
112
112
|
<!--
|
113
113
|
<dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
|
@@ -117,7 +117,7 @@
|
|
117
117
|
<dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
|
118
118
|
<dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
|
119
119
|
<dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
|
120
|
-
|
120
|
+
|
121
121
|
<!-- trie long (_lt...) (for faster range queries) -->
|
122
122
|
<!--
|
123
123
|
<dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
|
@@ -127,7 +127,7 @@
|
|
127
127
|
<dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
|
128
128
|
<dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
|
129
129
|
<dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
|
130
|
-
|
130
|
+
|
131
131
|
<!-- double (_db...) -->
|
132
132
|
<!--
|
133
133
|
<dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
|
@@ -137,7 +137,7 @@
|
|
137
137
|
<dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
|
138
138
|
<dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
|
139
139
|
<dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
|
140
|
-
|
140
|
+
|
141
141
|
<!-- trie double (_dbt...) (for faster range queries) -->
|
142
142
|
<!--
|
143
143
|
<dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
|
@@ -147,7 +147,7 @@
|
|
147
147
|
<dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
|
148
148
|
<dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
|
149
149
|
<dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
|
150
|
-
|
150
|
+
|
151
151
|
<!-- float (_f...) -->
|
152
152
|
<!--
|
153
153
|
<dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
|
@@ -157,7 +157,7 @@
|
|
157
157
|
<dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
|
158
158
|
<dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
|
159
159
|
<dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
|
160
|
-
|
160
|
+
|
161
161
|
<!-- trie float (_ft...) (for faster range queries) -->
|
162
162
|
<!--
|
163
163
|
<dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
|
@@ -167,28 +167,13 @@
|
|
167
167
|
<dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
|
168
168
|
<dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
|
169
169
|
<dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
|
170
|
-
|
170
|
+
|
171
171
|
<!-- boolean (_b...) -->
|
172
172
|
<!--
|
173
173
|
<dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
|
174
174
|
-->
|
175
175
|
<dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
|
176
176
|
<dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
|
177
|
-
|
178
|
-
<!-- Type used to index the lat and lon components for the "location" FieldType -->
|
179
|
-
<!--
|
180
|
-
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
|
181
|
-
-->
|
182
|
-
|
183
|
-
<!-- location (_ll...) -->
|
184
|
-
<!--
|
185
|
-
<dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/>
|
186
|
-
<dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/>
|
187
|
-
-->
|
188
|
-
<dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/>
|
189
|
-
<dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/>
|
190
|
-
<dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/>
|
191
|
-
<dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/>
|
192
177
|
|
193
178
|
<!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
|
194
179
|
<field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
|
@@ -208,32 +193,32 @@
|
|
208
193
|
|
209
194
|
<types>
|
210
195
|
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
|
211
|
-
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
196
|
+
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
|
212
197
|
<fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
|
213
|
-
|
198
|
+
|
214
199
|
<!-- Default numeric field types. -->
|
215
200
|
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
|
216
201
|
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
|
217
202
|
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
|
218
203
|
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
|
219
|
-
|
204
|
+
|
220
205
|
<!-- trie numeric field types for faster range queries -->
|
221
206
|
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
|
222
207
|
<fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
|
223
208
|
<fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
|
224
209
|
<fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
|
225
|
-
|
210
|
+
|
226
211
|
<!-- The format for this date field is of the form 1995-12-31T23:59:59Z
|
227
212
|
Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
|
228
213
|
-->
|
229
214
|
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
|
230
215
|
<!-- A Trie based date field for faster date range queries and date faceting. -->
|
231
216
|
<fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
|
232
|
-
|
233
|
-
|
217
|
+
|
218
|
+
|
234
219
|
<!-- This point type indexes the coordinates as separate fields (subFields)
|
235
220
|
If subFieldType is defined, it references a type, and a dynamic field
|
236
|
-
definition is created matching *___<typename>. Alternately, if
|
221
|
+
definition is created matching *___<typename>. Alternately, if
|
237
222
|
subFieldSuffix is defined, that is used to create the subFields.
|
238
223
|
Example: if subFieldType="double", then the coordinates would be
|
239
224
|
indexed in fields myloc_0___double,myloc_1___double.
|
@@ -243,17 +228,14 @@
|
|
243
228
|
users normally should not need to know about them.
|
244
229
|
-->
|
245
230
|
<fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
|
246
|
-
|
247
|
-
<!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
|
248
|
-
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
|
249
|
-
|
231
|
+
|
250
232
|
<!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
|
251
233
|
For more information about this and other Spatial fields new to Solr 4, see:
|
252
234
|
http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
|
253
235
|
-->
|
254
236
|
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
|
255
237
|
geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="degrees" />
|
256
|
-
|
238
|
+
|
257
239
|
<fieldType name="text" class="solr.TextField" omitNorms="false">
|
258
240
|
<analyzer>
|
259
241
|
<tokenizer class="solr.ICUTokenizerFactory"/>
|
@@ -261,7 +243,7 @@
|
|
261
243
|
<filter class="solr.TrimFilterFactory"/>
|
262
244
|
</analyzer>
|
263
245
|
</fieldType>
|
264
|
-
|
246
|
+
|
265
247
|
<!-- A text field that only splits on whitespace for exact matching of words -->
|
266
248
|
<fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
|
267
249
|
<analyzer>
|
@@ -269,7 +251,7 @@
|
|
269
251
|
<filter class="solr.TrimFilterFactory"/>
|
270
252
|
</analyzer>
|
271
253
|
</fieldType>
|
272
|
-
|
254
|
+
|
273
255
|
<!-- single token analyzed text, for sorting. Punctuation is significant. -->
|
274
256
|
<fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
|
275
257
|
<analyzer>
|
@@ -278,7 +260,7 @@
|
|
278
260
|
<filter class="solr.TrimFilterFactory" />
|
279
261
|
</analyzer>
|
280
262
|
</fieldtype>
|
281
|
-
|
263
|
+
|
282
264
|
<!-- A text field with defaults appropriate for English -->
|
283
265
|
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
|
284
266
|
<analyzer>
|
@@ -321,7 +303,7 @@
|
|
321
303
|
<tokenizer class="solr.KeywordTokenizerFactory"/>
|
322
304
|
</analyzer>
|
323
305
|
</fieldType>
|
324
|
-
|
306
|
+
|
325
307
|
<!-- queries for paths match documents at that path, or in descendent paths -->
|
326
308
|
<fieldType name="descendent_path" class="solr.TextField">
|
327
309
|
<analyzer type="index">
|
@@ -331,7 +313,7 @@
|
|
331
313
|
<tokenizer class="solr.KeywordTokenizerFactory" />
|
332
314
|
</analyzer>
|
333
315
|
</fieldType>
|
334
|
-
|
316
|
+
|
335
317
|
<!-- queries for paths match documents at that path, or in ancestor paths -->
|
336
318
|
<fieldType name="ancestor_path" class="solr.TextField">
|
337
319
|
<analyzer type="index">
|
@@ -341,7 +323,7 @@
|
|
341
323
|
<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
|
342
324
|
</analyzer>
|
343
325
|
</fieldType>
|
344
|
-
|
326
|
+
|
345
327
|
</types>
|
346
|
-
|
328
|
+
|
347
329
|
</schema>
|