spotlight-dor-resources 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8df55f329be83de6c7ad4eded72dab44cb457888
4
- data.tar.gz: d38a0f5e00576a446e71ce1d6ea77cd3276aefc3
3
+ metadata.gz: 020d6aad248dc730e3ee61896bb5883eb3842350
4
+ data.tar.gz: 76cd9bc6a57381ce04336628dabe02ea8a00d94b
5
5
  SHA512:
6
- metadata.gz: 010cb19a2fe3c6c2d16753685675e54de632acbf16c40babc1cce108a6aea2d15ef85220345c3e056eeeb22ae6ace6496f22e556d082408b9de8aef6718db12c
7
- data.tar.gz: 7060e3540e2e950b013d76f70263748eb461d0207b68e681fdcd46fba366c284d94d3b3c384b6bebc3415b550dd154248e1644a772a44fa8c4c14b08fdccc9c2
6
+ metadata.gz: fe9fd0ec3cf1e57b32183e71344d7e483ddb94562e09464d586d2377dfab0070fa8ff3b82b24ffcefd7bd7b16fb062c66721dbdad2c9456e4b394b03c77ac639
7
+ data.tar.gz: 42fef0ae0264474124e6dffd8eada91b6d463760b40e5a28e1388227a594d2844afb32663de4f1b6d0d6d149b9fc5a379e2413bd3c65da329bdc985cf79d80e5
data/.gitignore CHANGED
@@ -23,4 +23,4 @@ spec/internal
23
23
  .internal_test_app
24
24
  Gemfile.lock
25
25
  jetty
26
- ./spec/internal
26
+ .pry_history
data/.travis.yml CHANGED
@@ -6,7 +6,6 @@ rvm:
6
6
 
7
7
  env:
8
8
  global:
9
- - JRUBY_OPTS="-J-Xms512m -J-Xmx1024m"
10
9
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
11
10
 
12
11
  sudo: false
@@ -14,4 +13,3 @@ language: ruby
14
13
 
15
14
  script:
16
15
  - bundle exec rake
17
- - bundle exec rake rubocop
data/Rakefile CHANGED
@@ -10,15 +10,6 @@ Bundler::GemHelper.install_tasks
10
10
 
11
11
  task default: [:ci, :rubocop]
12
12
 
13
- namespace :spotlight do
14
- desc 'Copies the default SOLR config for the bundled Testing Server'
15
- task :configure_jetty do
16
- FileList['solr_conf/conf/*'].each do |f|
17
- cp("#{f}", 'jetty/solr/blacklight-core/conf/', verbose: true)
18
- end
19
- end
20
- end
21
-
22
13
  require 'rspec/core/rake_task'
23
14
  RSpec::Core::RakeTask.new(:spec)
24
15
 
@@ -27,7 +18,9 @@ RuboCop::RakeTask.new(:rubocop)
27
18
 
28
19
  require 'jettywrapper'
29
20
  require 'engine_cart/rake_task'
30
- task ci: ['engine_cart:generate', 'jetty:clean', 'spotlight:configure_jetty'] do
21
+ require 'exhibits_solr_conf'
22
+ desc 'Run tests in generated test Rails app with generated Solr instance running'
23
+ task ci: ['engine_cart:generate', 'jetty:clean', 'exhibits:configure_solr'] do
31
24
  ENV['environment'] = 'test'
32
25
  jetty_params = Jettywrapper.load_config
33
26
  jetty_params[:startup_wait] = 60
@@ -194,7 +194,7 @@ module Spotlight::Dor
194
194
  def add_object_full_text(sdb, solr_doc)
195
195
  full_text_urls = object_level_full_text_urls(sdb)
196
196
  return if full_text_urls.size == 0
197
- solr_doc['full_text_tesim'] = full_text_urls.map { |file_url| get_file_content(file_url) }
197
+ solr_doc['full_text_tesimv'] = full_text_urls.map { |file_url| get_file_content(file_url) }
198
198
  end
199
199
 
200
200
  # go grab the supplied file url, grab the file, encode and return
@@ -2,7 +2,7 @@ module Spotlight
2
2
  module Dor
3
3
  # :nodoc:
4
4
  module Resources
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
8
8
  end
@@ -501,6 +501,7 @@ describe Spotlight::Dor::Indexer do
501
501
  # rubocop:enable Metrics/LineLength
502
502
 
503
503
  describe '#add_object_full_text' do
504
+ let(:full_text_solr_fname) { 'full_text_tesimv' }
504
505
  before do
505
506
  allow(sdb).to receive(:bare_druid).and_return(fake_druid)
506
507
  end
@@ -527,7 +528,7 @@ describe Spotlight::Dor::Indexer do
527
528
  allow(subject).to receive(:get_file_content).with(full_file_path).and_return(expected_text)
528
529
  subject.send(:add_object_full_text, sdb, solr_doc)
529
530
  expect(subject.object_level_full_text_urls(sdb)).to eq [full_file_path]
530
- expect(solr_doc['full_text_tesim']).to eq [expected_text]
531
+ expect(solr_doc[full_text_solr_fname]).to eq [expected_text]
531
532
  end
532
533
  it 'does not index the full text if no recognized pattern is found' do
533
534
  public_xml_with_no_recognized_full_text = Nokogiri::XML <<-EOF
@@ -547,7 +548,7 @@ describe Spotlight::Dor::Indexer do
547
548
  allow(sdb).to receive(:public_xml).and_return(public_xml_with_no_recognized_full_text)
548
549
  subject.send(:add_object_full_text, sdb, solr_doc)
549
550
  expect(subject.object_level_full_text_urls(sdb)).to eq []
550
- expect(solr_doc['full_text_tesim']).to be_nil
551
+ expect(solr_doc[full_text_solr_fname]).to be_nil
551
552
  end
552
553
  it 'indexes the full text from two files if two recognized patterns are found' do
553
554
  public_xml_with_two_recognized_full_text_files = Nokogiri::XML <<-EOF
@@ -570,7 +571,7 @@ describe Spotlight::Dor::Indexer do
570
571
  allow(subject).to receive(:get_file_content).with(full_file_path).and_return(expected_text)
571
572
  subject.send(:add_object_full_text, sdb, solr_doc)
572
573
  expect(subject.object_level_full_text_urls(sdb)).to eq [full_file_path, full_file_path]
573
- expect(solr_doc['full_text_tesim']).to eq [expected_text, expected_text] # same file twice in a 2 element array
574
+ expect(solr_doc[full_text_solr_fname]).to eq [expected_text, expected_text] # same file twice in a 2 element array
574
575
  end
575
576
  end # add_object_full_text
576
577
  end
@@ -66,11 +66,13 @@ describe Spotlight::Resources::Purl do
66
66
  end
67
67
 
68
68
  it 'adds a document to solr' do
69
- solr_data = [{ spotlight_resource_id_ssim: nil, spotlight_resource_type_ssim: 'spotlight/resources/purls', upstream: true }]
69
+ solr_data = [{ spotlight_resource_id_ssim: subject.to_global_id,
70
+ spotlight_resource_type_ssim: 'spotlight/resources/purls',
71
+ upstream: true }]
70
72
  expect(blacklight_solr).to receive(:update).with(params: { commitWithin: 500 },
71
73
  data: solr_data.to_json,
72
74
  headers: { 'Content-Type' => 'application/json' })
73
- expect(subject).to receive(:update_index_time!)
75
+ expect(subject).to receive(:commit)
74
76
  subject.reindex
75
77
  end
76
78
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  ENV["RAILS_ENV"] ||= 'test'
2
2
 
3
- require 'factory_girl'
4
3
  require 'database_cleaner'
5
4
  require 'devise'
6
5
  require 'engine_cart'
@@ -8,9 +7,7 @@ require 'vcr'
8
7
  EngineCart.load_application!
9
8
 
10
9
  require 'rspec/rails'
11
- require 'capybara/poltergeist'
12
- Capybara.javascript_driver = :poltergeist
13
- Capybara.default_max_wait_time = 5
10
+ require 'capybara'
14
11
 
15
12
  if ENV["COVERAGE"] or ENV["CI"]
16
13
  require 'simplecov'
@@ -27,9 +24,6 @@ require 'spotlight'
27
24
 
28
25
  Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
29
26
 
30
- FactoryGirl.definition_file_paths = [File.expand_path("../factories", __FILE__)]
31
- FactoryGirl.find_definitions
32
-
33
27
  VCR.configure do |config|
34
28
  config.cassette_library_dir = "spec/vcr_cassettes"
35
29
  config.hook_into :webmock
@@ -8,20 +8,20 @@ class CatalogController < ApplicationController
8
8
  configure_blacklight do |config|
9
9
  ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
10
10
  config.default_solr_params = {
11
- :qt => 'search',
12
- :rows => 10,
13
- :fl => '*'
11
+ qt: 'search',
12
+ rows: 10,
13
+ fl: '*'
14
14
  }
15
15
 
16
16
  ## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SolrHelper#solr_doc_params) or
17
17
  ## parameters included in the Blacklight-jetty document requestHandler.
18
18
  #
19
19
  #config.default_document_solr_params = {
20
- # :qt => 'document',
20
+ # qt: 'document',
21
21
  # ## These are hard-coded in the blacklight 'document' requestHandler
22
- # # :fl => '*',
23
- # # :rows => 1
24
- # # :q => '{!raw f=id v=$id}'
22
+ # # fl: '*',
23
+ # # rows: 1
24
+ # # q: '{!raw f=id v=$id}'
25
25
  #}
26
26
 
27
27
  # solr field configuration for search results/index views
@@ -50,12 +50,12 @@ class CatalogController < ApplicationController
50
50
  #
51
51
  # :show may be set to false if you don't want the facet to be drawn in the
52
52
  # facet bar
53
- config.add_facet_field 'genre_ssim', :label => 'Genre', :limit => true
54
- config.add_facet_field 'personal_name_ssm', :label => 'Personal Names', :limit => true
55
- config.add_facet_field 'corporate_name_ssm', :label => 'Corporate Names', :limit => true
56
- config.add_facet_field 'subject_geographic_ssim', :label => 'Geographic'
57
- config.add_facet_field 'subject_temporal_ssim', :label => 'Era'
58
- config.add_facet_field 'language_ssim', :label => 'Language'
53
+ config.add_facet_field 'genre_ssim', label: 'Genre', limit: true
54
+ config.add_facet_field 'personal_name_ssm', label: 'Personal Names', limit: true
55
+ config.add_facet_field 'corporate_name_ssm', label: 'Corporate Names', limit: true
56
+ config.add_facet_field 'subject_geographic_ssim', label: 'Geographic'
57
+ config.add_facet_field 'subject_temporal_ssim', label: 'Era'
58
+ config.add_facet_field 'language_ssim', label: 'Language'
59
59
 
60
60
 
61
61
  # Have BL send all facet field names to Solr, which has been the default
@@ -65,32 +65,32 @@ class CatalogController < ApplicationController
65
65
 
66
66
  # solr fields to be displayed in the index (search results) view
67
67
  # The ordering of the field names is the order of the display
68
- config.add_index_field 'language_ssm', :label => 'Language'
69
- config.add_index_field 'abstract_tesim', :label => 'Abstract'
70
- config.add_index_field 'note_mapuse_tesim', :label => 'Type'
71
- config.add_index_field 'note_source_tesim', :label => 'Source'
72
- config.add_index_field 'subject_geographic_tesim', :label => 'Geographic Subject'
73
- config.add_index_field 'subject_temporal_tesim', :label => 'Temporal Subject'
68
+ config.add_index_field 'language_ssm', label: 'Language'
69
+ config.add_index_field 'abstract_tesim', label: 'Abstract'
70
+ config.add_index_field 'note_mapuse_tesim', label: 'Type'
71
+ config.add_index_field 'note_source_tesim', label: 'Source'
72
+ config.add_index_field 'subject_geographic_tesim', label: 'Geographic Subject'
73
+ config.add_index_field 'subject_temporal_tesim', label: 'Temporal Subject'
74
74
 
75
75
  # solr fields to be displayed in the show (single result) view
76
76
  # The ordering of the field names is the order of the display
77
- config.add_show_field 'note_phys_desc_tesim', :label => 'Note'
78
- config.add_show_field 'note_source_tesim', :label => 'Source'
79
- config.add_show_field 'note_desc_note_tesim', :label => 'Note'
80
- config.add_show_field 'note_references_tesim', :label => 'References'
81
- config.add_show_field 'note_provenance_tesim', :label => 'Provenance'
82
- config.add_show_field 'note_page_num_tesim', :label => 'Page Number'
83
- config.add_show_field 'subject_geographic_tesim', :label => 'Geographic Subject'
84
- config.add_show_field 'subject_temporal_tesim', :label => 'Temporal Subject'
85
- config.add_show_field 'personal_name_ssm', :label => 'Personal Names'
86
- config.add_show_field 'corporate_name_ssm', :label => 'Corporate Names'
77
+ config.add_show_field 'note_phys_desc_tesim', label: 'Note'
78
+ config.add_show_field 'note_source_tesim', label: 'Source'
79
+ config.add_show_field 'note_desc_note_tesim', label: 'Note'
80
+ config.add_show_field 'note_references_tesim', label: 'References'
81
+ config.add_show_field 'note_provenance_tesim', label: 'Provenance'
82
+ config.add_show_field 'note_page_num_tesim', label: 'Page Number'
83
+ config.add_show_field 'subject_geographic_tesim', label: 'Geographic Subject'
84
+ config.add_show_field 'subject_temporal_tesim', label: 'Temporal Subject'
85
+ config.add_show_field 'personal_name_ssm', label: 'Personal Names'
86
+ config.add_show_field 'corporate_name_ssm', label: 'Corporate Names'
87
87
 
88
- config.add_sort_field 'score desc, sort_title_ssi asc', :label => 'Relevance'
89
- config.add_sort_field 'sort_title_ssi asc', :label => 'Title'
90
- config.add_sort_field 'sort_type_ssi asc', :label => 'Type'
91
- config.add_sort_field 'sort_date_dtsi asc', :label => 'Date'
92
- config.add_sort_field 'sort_source_ssi asc', :label => 'Source'
93
- config.add_sort_field 'id asc', :label => 'Identifier'
88
+ config.add_sort_field 'score desc, sort_title_ssi asc', label: 'Relevance'
89
+ config.add_sort_field 'sort_title_ssi asc', label: 'Title'
90
+ config.add_sort_field 'sort_type_ssi asc', label: 'Type'
91
+ config.add_sort_field 'sort_date_dtsi asc', label: 'Date'
92
+ config.add_sort_field 'sort_source_ssi asc', label: 'Source'
93
+ config.add_sort_field 'id asc', label: 'Identifier'
94
94
  end
95
95
 
96
96
  end
@@ -4,37 +4,36 @@ class TestAppGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path("../../../../spec/test_app_templates", __FILE__)
5
5
 
6
6
  def add_gems
7
- gem 'blacklight', '~> 5.1'
8
- gem "blacklight-spotlight"
7
+ gem 'blacklight-spotlight'
9
8
  Bundler.with_clean_env do
10
- run "bundle install"
9
+ run 'bundle install --quiet'
11
10
  end
12
11
  end
13
12
 
14
13
  def run_blacklight_generator
15
- say_status("warning", "GENERATING BL", :yellow)
14
+ say_status('warning', 'GENERATING BL', :yellow)
16
15
  generate 'blacklight:install', '--devise --jettywrapper'
17
16
  end
18
17
 
19
18
  def run_spotlight_migrations
20
- rake "spotlight:install:migrations"
21
- rake "db:migrate"
19
+ rake 'spotlight:install:migrations'
20
+ rake 'db:migrate'
22
21
  end
23
22
 
24
23
  def add_spotlight_routes_and_assets
25
24
  # spotlight will provide its own catalog controller.. remove blacklight's to
26
25
  # avoid getting prompted about file conflicts
27
- remove_file "app/controllers/catalog_controller.rb"
26
+ remove_file 'app/controllers/catalog_controller.rb'
28
27
 
29
- generate 'spotlight:install'
28
+ generate 'spotlight:install', '-f --mailer_default_url_host=localhost:3000'
30
29
  end
31
30
 
32
31
  def add_catalog_controller
33
- copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb", force: true
32
+ copy_file 'catalog_controller.rb', 'app/controllers/catalog_controller.rb', force: true
34
33
  end
35
34
 
36
35
  def configure_gdor
37
- copy_file "gdor.yml", "config/gdor.yml", force: true
36
+ copy_file 'gdor.yml', 'config/gdor.yml', force: true
38
37
  end
39
38
 
40
39
  end
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
4
5
  require 'spotlight/dor/resources/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
@@ -17,6 +18,8 @@ Gem::Specification.new do |spec|
17
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
19
  spec.require_paths = ['lib']
19
20
 
21
+ spec.required_ruby_version = '>= 2.2.3' # parallel gem fails with 2.2.2
22
+
20
23
  spec.add_dependency 'faraday'
21
24
  spec.add_dependency 'solrizer'
22
25
  spec.add_dependency 'gdor-indexer'
@@ -30,11 +33,10 @@ Gem::Specification.new do |spec|
30
33
  spec.add_development_dependency 'rspec'
31
34
  spec.add_development_dependency 'rspec-rails'
32
35
  spec.add_development_dependency 'capybara'
33
- spec.add_development_dependency 'poltergeist', '>= 1.5.0'
34
36
  spec.add_development_dependency 'vcr', '~> 3.0'
35
37
  spec.add_development_dependency 'webmock'
36
38
  spec.add_development_dependency 'jettywrapper'
37
39
  spec.add_development_dependency 'engine_cart', '~> 0.8'
38
- spec.add_development_dependency 'factory_girl'
39
40
  spec.add_development_dependency 'database_cleaner'
41
+ spec.add_development_dependency 'exhibits_solr_conf'
40
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spotlight-dor-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-11 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -178,20 +178,6 @@ dependencies:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: poltergeist
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: 1.5.0
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: 1.5.0
195
181
  - !ruby/object:Gem::Dependency
196
182
  name: vcr
197
183
  requirement: !ruby/object:Gem::Requirement
@@ -249,7 +235,7 @@ dependencies:
249
235
  - !ruby/object:Gem::Version
250
236
  version: '0.8'
251
237
  - !ruby/object:Gem::Dependency
252
- name: factory_girl
238
+ name: database_cleaner
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
241
  - - ">="
@@ -263,7 +249,7 @@ dependencies:
263
249
  - !ruby/object:Gem::Version
264
250
  version: '0'
265
251
  - !ruby/object:Gem::Dependency
266
- name: database_cleaner
252
+ name: exhibits_solr_conf
267
253
  requirement: !ruby/object:Gem::Requirement
268
254
  requirements:
269
255
  - - ">="
@@ -300,8 +286,6 @@ files:
300
286
  - lib/spotlight/dor/resources.rb
301
287
  - lib/spotlight/dor/resources/engine.rb
302
288
  - lib/spotlight/dor/resources/version.rb
303
- - solr_conf/conf/schema.xml
304
- - solr_conf/conf/solrconfig.xml
305
289
  - spec/integration/gdor_integration_spec.rb
306
290
  - spec/lib/spotlight/dor/indexer_spec.rb
307
291
  - spec/models/spotlight/resources/purl_spec.rb
@@ -327,7 +311,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
311
  requirements:
328
312
  - - ">="
329
313
  - !ruby/object:Gem::Version
330
- version: '0'
314
+ version: 2.2.3
331
315
  required_rubygems_version: !ruby/object:Gem::Requirement
332
316
  requirements:
333
317
  - - ">="
@@ -1,346 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <schema name="Hydra" version="1.5">
3
- <!-- NOTE: various comments and unused configuration possibilities have been purged
4
- from this file. Please refer to http://wiki.apache.org/solr/SchemaXml,
5
- as well as the default schema file included with Solr -->
6
-
7
- <uniqueKey>id</uniqueKey>
8
-
9
- <fields>
10
- <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
11
- <field name="_version_" type="long" indexed="true" stored="true"/>
12
- <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
13
-
14
- <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
15
- <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
16
- <field name="original_pid_tesim" type="pid_text" stored="true" indexed="true" multiValued="true"/>
17
-
18
- <field name="full_title_ng" type="text_en_ng" stored="false" indexed="true" multiValued="true"/>
19
- <field name="id_ng" type="text_en_ng" stored="false" indexed="true" multiValued="false"/>
20
-
21
- <!-- NOTE: not all possible Solr field types are represented in the dynamic fields -->
22
-
23
- <!-- text (_t...) -->
24
- <!--
25
- <dynamicField name="*_ti" type="text" stored="false" indexed="true" multiValued="false"/>
26
- <dynamicField name="*_tim" type="text" stored="false" indexed="true" multiValued="true"/>
27
- -->
28
- <dynamicField name="*_ts" type="text" stored="true" indexed="false" multiValued="false"/>
29
- <dynamicField name="*_tsm" type="text" stored="true" indexed="false" multiValued="true"/>
30
- <dynamicField name="*_tsi" type="text" stored="true" indexed="true" multiValued="false"/>
31
- <dynamicField name="*_tsim" type="text" stored="true" indexed="true" multiValued="true"/>
32
- <!--
33
- <dynamicField name="*_tiv" type="text" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
34
- <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
35
- -->
36
- <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
37
- <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
38
-
39
- <!-- English text (_te...) -->
40
- <!--
41
- <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
42
- <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
43
- -->
44
- <dynamicField name="*_tes" type="text_en" stored="true" indexed="false" multiValued="false"/>
45
- <dynamicField name="*_tesm" type="text_en" stored="true" indexed="false" multiValued="true"/>
46
- <dynamicField name="*_tesi" type="text_en" stored="true" indexed="true" multiValued="false"/>
47
- <dynamicField name="*_tesim" type="text_en" stored="true" indexed="true" multiValued="true"/>
48
- <!--
49
- <dynamicField name="*_teiv" type="text_en" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
50
- <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
51
- -->
52
- <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
53
- <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
54
-
55
- <!-- string (_s...) -->
56
- <!--
57
- <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
58
- <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
59
- -->
60
- <dynamicField name="*_ss" type="string" stored="true" indexed="false" multiValued="false"/>
61
- <dynamicField name="*_ssm" type="string" stored="true" indexed="false" multiValued="true"/>
62
- <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
63
- <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
64
- <!--
65
- <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
66
- -->
67
-
68
- <!-- integer (_i...) -->
69
- <!--
70
- <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
71
- <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
72
- -->
73
- <dynamicField name="*_is" type="int" stored="true" indexed="false" multiValued="false"/>
74
- <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
75
- <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
76
- <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
77
-
78
- <!-- trie integer (_it...) (for faster range queries) -->
79
- <!--
80
- <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
81
- <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
82
- -->
83
- <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/>
84
- <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
85
- <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
86
- <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
87
-
88
- <!-- date (_dt...) -->
89
- <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
90
- Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
91
- <!--
92
- <dynamicField name="*_dti" type="date" stored="false" indexed="true" multiValued="false"/>
93
- <dynamicField name="*_dtim" type="date" stored="false" indexed="true" multiValued="true"/>
94
- -->
95
- <dynamicField name="*_dts" type="date" stored="true" indexed="false" multiValued="false"/>
96
- <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
97
- <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
98
- <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
99
-
100
- <!-- trie date (_dtt...) (for faster range queries) -->
101
- <!--
102
- <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
103
- <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
104
- -->
105
- <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/>
106
- <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
107
- <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
108
- <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
109
-
110
- <!-- long (_l...) -->
111
- <!--
112
- <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
113
- <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
114
- -->
115
- <dynamicField name="*_ls" type="long" stored="true" indexed="false" multiValued="false"/>
116
- <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
117
- <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
118
- <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
119
-
120
- <!-- trie long (_lt...) (for faster range queries) -->
121
- <!--
122
- <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
123
- <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
124
- -->
125
- <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/>
126
- <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
127
- <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
128
- <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
129
-
130
- <!-- double (_db...) -->
131
- <!--
132
- <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
133
- <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
134
- -->
135
- <dynamicField name="*_dbs" type="double" stored="true" indexed="false" multiValued="false"/>
136
- <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
137
- <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
138
- <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
139
-
140
- <!-- trie double (_dbt...) (for faster range queries) -->
141
- <!--
142
- <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
143
- <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
144
- -->
145
- <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/>
146
- <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
147
- <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
148
- <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
149
-
150
- <!-- float (_f...) -->
151
- <!--
152
- <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
153
- <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
154
- -->
155
- <dynamicField name="*_fs" type="float" stored="true" indexed="false" multiValued="false"/>
156
- <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
157
- <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
158
- <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
159
-
160
- <!-- trie float (_ft...) (for faster range queries) -->
161
- <!--
162
- <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
163
- <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
164
- -->
165
- <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/>
166
- <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
167
- <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
168
- <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
169
-
170
- <!-- boolean (_b...) -->
171
- <!--
172
- <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
173
- -->
174
- <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
175
- <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
176
-
177
- <!-- Type used to index the lat and lon components for the "location" FieldType -->
178
- <!--
179
- <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
180
- -->
181
-
182
- <!-- location (_ll...) -->
183
- <!--
184
- <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/>
185
- <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/>
186
- -->
187
- <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/>
188
- <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/>
189
- <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/>
190
- <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/>
191
-
192
- <!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
193
- <field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
194
-
195
-
196
- </fields>
197
-
198
-
199
- <!-- Above, multiple source fields are copied to the [text] field.
200
- Another way to map multiple source fields to the same
201
- destination field is to use the dynamic field syntax.
202
- copyField also supports a maxChars to copy setting. -->
203
-
204
- <copyField source="id" dest="id_ng" maxChars="3000"/>
205
- <copyField source="full_title_tesim" dest="full_title_ng" maxChars="3000"/>
206
- <copyField source="*_tesim" dest="all_text_timv" maxChars="3000"/>
207
-
208
- <types>
209
- <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
210
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
211
- <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
212
-
213
- <!-- Default numeric field types. -->
214
- <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
215
- <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
216
- <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
217
- <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
218
-
219
- <!-- trie numeric field types for faster range queries -->
220
- <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
221
- <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
222
- <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
223
- <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
224
-
225
- <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
226
- Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
227
- -->
228
- <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
229
- <!-- A Trie based date field for faster date range queries and date faceting. -->
230
- <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
231
-
232
-
233
- <!-- This point type indexes the coordinates as separate fields (subFields)
234
- If subFieldType is defined, it references a type, and a dynamic field
235
- definition is created matching *___<typename>. Alternately, if
236
- subFieldSuffix is defined, that is used to create the subFields.
237
- Example: if subFieldType="double", then the coordinates would be
238
- indexed in fields myloc_0___double,myloc_1___double.
239
- Example: if subFieldSuffix="_d" then the coordinates would be indexed
240
- in fields myloc_0_d,myloc_1_d
241
- The subFields are an implementation detail of the fieldType, and end
242
- users normally should not need to know about them.
243
- -->
244
- <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
245
-
246
- <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
247
- <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
248
-
249
- <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
250
- For more information about this and other Spatial fields new to Solr 4, see:
251
- http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
252
- -->
253
- <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
254
- geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />
255
-
256
- <fieldType name="text" class="solr.TextField" omitNorms="false">
257
- <analyzer>
258
- <tokenizer class="solr.ICUTokenizerFactory"/>
259
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
260
- <filter class="solr.TrimFilterFactory"/>
261
- </analyzer>
262
- </fieldType>
263
-
264
- <!-- A text field that only splits on whitespace for exact matching of words -->
265
- <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
266
- <analyzer>
267
- <tokenizer class="solr.WhitespaceTokenizerFactory"/>
268
- <filter class="solr.TrimFilterFactory"/>
269
- </analyzer>
270
- </fieldType>
271
-
272
- <!-- single token analyzed text, for sorting. Punctuation is significant. -->
273
- <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
274
- <analyzer>
275
- <tokenizer class="solr.KeywordTokenizerFactory" />
276
- <filter class="solr.ICUFoldingFilterFactory"/>
277
- <filter class="solr.TrimFilterFactory" />
278
- </analyzer>
279
- </fieldtype>
280
-
281
- <!-- A text field with defaults appropriate for English -->
282
- <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
283
- <analyzer>
284
- <tokenizer class="solr.ICUTokenizerFactory"/>
285
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
286
- <filter class="solr.EnglishPossessiveFilterFactory"/>
287
- <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
288
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
289
- <!--
290
- <filter class="solr.PorterStemFilterFactory"/>
291
- -->
292
- <filter class="solr.TrimFilterFactory"/>
293
- </analyzer>
294
- </fieldType>
295
-
296
- <!-- A text field with defaults appropriate for English an NGrams -->
297
- <fieldType name="text_en_ng" class="solr.TextField" positionIncrementGap="100">
298
- <analyzer type="index">
299
- <tokenizer class="solr.ICUTokenizerFactory"/>
300
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
301
- <filter class="solr.EnglishPossessiveFilterFactory"/>
302
- <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
303
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
304
- <filter class="solr.TrimFilterFactory"/>
305
- <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" side="front"/>:
306
- </analyzer>
307
-
308
- <analyzer type="index">
309
- <tokenizer class="solr.ICUTokenizerFactory"/>
310
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
311
- <filter class="solr.EnglishPossessiveFilterFactory"/>
312
- <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
313
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
314
- <filter class="solr.TrimFilterFactory"/>
315
- </analyzer>
316
- </fieldType>
317
-
318
- <fieldType name="pid_text" class="solr.TextField" positionIncrementGap="100">
319
- <analyzer>
320
- <tokenizer class="solr.KeywordTokenizerFactory"/>
321
- </analyzer>
322
- </fieldType>
323
-
324
- <!-- queries for paths match documents at that path, or in descendent paths -->
325
- <fieldType name="descendent_path" class="solr.TextField">
326
- <analyzer type="index">
327
- <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
328
- </analyzer>
329
- <analyzer type="query">
330
- <tokenizer class="solr.KeywordTokenizerFactory" />
331
- </analyzer>
332
- </fieldType>
333
-
334
- <!-- queries for paths match documents at that path, or in ancestor paths -->
335
- <fieldType name="ancestor_path" class="solr.TextField">
336
- <analyzer type="index">
337
- <tokenizer class="solr.KeywordTokenizerFactory" />
338
- </analyzer>
339
- <analyzer type="query">
340
- <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
341
- </analyzer>
342
- </fieldType>
343
-
344
- </types>
345
-
346
- </schema>
@@ -1,180 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" ?>
2
- <config>
3
- <!-- NOTE: various comments and unused configuration possibilities have been purged
4
- from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
5
- as well as the default solrconfig file included with Solr -->
6
-
7
- <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
8
-
9
- <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
10
-
11
- <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
12
-
13
- <updateHandler class="solr.DirectUpdateHandler2">
14
- <updateLog>
15
- <str name="dir">${solr.core0.data.dir:}</str>
16
- </updateLog>
17
- </updateHandler>
18
-
19
- <!-- solr lib dirs -->
20
- <lib dir="../lib/contrib/analysis-extras/lib" />
21
- <lib dir="../lib/contrib/analysis-extras/lucene-libs" />
22
-
23
- <dataDir>${solr.data.dir:}</dataDir>
24
-
25
- <requestHandler name="search" class="solr.SearchHandler" default="true">
26
- <!-- default values for query parameters can be specified, these
27
- will be overridden by parameters in the request
28
- -->
29
- <lst name="defaults">
30
- <str name="defType">edismax</str>
31
- <str name="echoParams">explicit</str>
32
- <str name="q.alt">*:*</str>
33
- <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
34
- <int name="qs">1</int>
35
- <int name="ps">2</int>
36
- <float name="tie">0.01</float>
37
- <!-- this qf and pf are used by default, if not otherwise specified by
38
- client. The default blacklight_config will use these for the
39
- "keywords" search. See the author_qf/author_pf, title_qf, etc
40
- below, which the default blacklight_config will specify for
41
- those searches. You may also be interested in:
42
- http://wiki.apache.org/solr/LocalParams
43
- -->
44
- <str name="qf">
45
- id
46
- full_title_tesim
47
- short_title_tesim
48
- alternative_title_tesim
49
- active_fedora_model_ssi
50
- title_tesim
51
- author_tesim
52
- subject_tesim
53
- all_text_timv
54
- </str>
55
- <str name="pf">
56
- all_text_timv^10
57
- </str>
58
-
59
- <str name="author_qf">
60
- author_tesim
61
- </str>
62
- <str name="author_pf">
63
- </str>
64
- <str name="title_qf">
65
- title_tesim
66
- full_title_tesim
67
- short_title_tesim
68
- alternative_title_tesim
69
- </str>
70
- <str name="title_pf">
71
- </str>
72
- <str name="subject_qf">
73
- subject_tesim
74
- </str>
75
- <str name="subject_pf">
76
- </str>
77
-
78
- <str name="fl">
79
- *,
80
- score
81
- </str>
82
-
83
- <str name="facet">true</str>
84
- <str name="facet.mincount">1</str>
85
- <str name="facet.limit">10</str>
86
- <str name="facet.field">active_fedora_model_ssi</str>
87
- <str name="facet.field">subject_ssim</str>
88
-
89
- <str name="spellcheck">true</str>
90
- <str name="spellcheck.dictionary">default</str>
91
- <str name="spellcheck.onlyMorePopular">true</str>
92
- <str name="spellcheck.extendedResults">true</str>
93
- <str name="spellcheck.collate">false</str>
94
- <str name="spellcheck.count">5</str>
95
-
96
- </lst>
97
- <arr name="last-components">
98
- <str>spellcheck</str>
99
- </arr>
100
- </requestHandler>
101
-
102
- <requestHandler name="permissions" class="solr.SearchHandler" >
103
- <lst name="defaults">
104
- <str name="facet">off</str>
105
- <str name="echoParams">all</str>
106
- <str name="rows">1</str>
107
- <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
108
- <str name="fl">
109
- id,
110
- access_ssim,
111
- discover_access_group_ssim,discover_access_person_ssim,
112
- read_access_group_ssim,read_access_person_ssim,
113
- edit_access_group_ssim,edit_access_person_ssim,
114
- depositor_ti,
115
- embargo_release_date_dtsi
116
- inheritable_access_ssim,
117
- inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
118
- inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
119
- inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
120
- inheritable_embargo_release_date_dtsi
121
- </str>
122
- </lst>
123
- </requestHandler>
124
-
125
- <requestHandler name="standard" class="solr.SearchHandler">
126
- <lst name="defaults">
127
- <str name="echoParams">explicit</str>
128
- <str name="defType">lucene</str>
129
- </lst>
130
- </requestHandler>
131
-
132
- <!-- for requests to get a single document; use id=666 instead of q=id:666 -->
133
- <requestHandler name="document" class="solr.SearchHandler" >
134
- <lst name="defaults">
135
- <str name="echoParams">all</str>
136
- <str name="fl">*</str>
137
- <str name="rows">1</str>
138
- <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
139
- </lst>
140
- </requestHandler>
141
-
142
-
143
- <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
144
- <str name="queryAnalyzerFieldType">textSpell</str>
145
- <!-- Multiple "Spell Checkers" can be declared and used by this component
146
- (e.g. for title_spell field)
147
- -->
148
- <lst name="spellchecker">
149
- <str name="name">default</str>
150
- <str name="field">spell</str>
151
- <str name="spellcheckIndexDir">./spell</str>
152
- <str name="buildOnOptimize">true</str>
153
- </lst>
154
- </searchComponent>
155
-
156
- <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
157
-
158
- <requestDispatcher handleSelect="true" >
159
- <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
160
- </requestDispatcher>
161
-
162
- <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
163
- <requestHandler name="/update" class="solr.UpdateRequestHandler" />
164
- <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
165
-
166
- <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
167
- <lst name="invariants">
168
- <str name="q">solrpingquery</str>
169
- </lst>
170
- <lst name="defaults">
171
- <str name="echoParams">all</str>
172
- </lst>
173
- </requestHandler>
174
-
175
- <!-- config for the admin interface -->
176
- <admin>
177
- <defaultQuery>search</defaultQuery>
178
- </admin>
179
-
180
- </config>