spotlight-dor-resources 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>