enju_ndl 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +5 -5
  2. data/app/models/ndl_book.rb +9 -1
  3. data/app/views/ndl_books/index.html.erb +1 -1
  4. data/lib/enju_ndl/engine.rb +1 -1
  5. data/lib/enju_ndl/ndl_search.rb +3 -3
  6. data/lib/enju_ndl/version.rb +1 -1
  7. data/spec/cassette_library/ImportRequest/should_import_a_foreign_book.yml +121 -0
  8. data/spec/cassette_library/ImportRequest/should_import_isbn.yml +49 -492
  9. data/spec/cassette_library/Manifestation/should_import_a_bibliographic_record.yml +121 -0
  10. data/spec/cassette_library/Manifestation/should_import_dcterms_issued.yml +121 -0
  11. data/spec/cassette_library/Manifestation/should_import_isbn.yml +52 -495
  12. data/spec/cassette_library/Manifestation/should_import_series_statement.yml +48 -1121
  13. data/spec/cassette_library/Manifestation/should_import_with_ndl_bib_id.yml +20 -23
  14. data/spec/cassette_library/NdlBook/import/should_get_author_IDs_from_NDLA.yml +62 -0
  15. data/spec/cassette_library/NdlBook/import/should_get_series_title.yml +24 -111
  16. data/spec/cassette_library/NdlBook/import/should_get_subject_IDs_from_NDLA.yml +62 -0
  17. data/spec/cassette_library/NdlBook/import/should_get_volume_number.yml +28 -92
  18. data/spec/cassette_library/NdlBook/import/should_import_audio_cd.yml +26 -126
  19. data/spec/cassette_library/NdlBook/import/should_import_bibliographic_record.yml +28 -166
  20. data/spec/cassette_library/NdlBook/import/should_import_bibliographic_record_that_does_not_have_any_classifications.yml +25 -155
  21. data/spec/cassette_library/NdlBook/import/should_import_edition.yml +25 -154
  22. data/spec/cassette_library/NdlBook/import/should_import_even_with_invalid_url.yml +25 -137
  23. data/spec/cassette_library/NdlBook/import/should_import_map.yml +25 -140
  24. data/spec/cassette_library/NdlBook/import/should_import_ndc8_classification.yml +26 -214
  25. data/spec/cassette_library/NdlBook/import/should_import_notated_music.yml +27 -125
  26. data/spec/cassette_library/NdlBook/import/should_import_painting.yml +26 -114
  27. data/spec/cassette_library/NdlBook/import/should_import_photograph.yml +26 -116
  28. data/spec/cassette_library/NdlBook/import/should_import_picture_postcard.yml +26 -136
  29. data/spec/cassette_library/NdlBook/import/should_import_publication_place.yml +28 -192
  30. data/spec/cassette_library/NdlBook/import/should_import_pud_date_is_nil.yml +25 -107
  31. data/spec/cassette_library/NdlBook/import/should_import_series_statement.yml +27 -194
  32. data/spec/cassette_library/NdlBook/import/should_import_series_statement_if_the_resource_is_serial.yml +24 -216
  33. data/spec/cassette_library/NdlBook/import/should_import_series_statement_s_creator.yml +27 -241
  34. data/spec/cassette_library/NdlBook/import/should_import_series_statement_transctiption.yml +27 -207
  35. data/spec/cassette_library/NdlBook/import/should_import_still_image.yml +26 -133
  36. data/spec/cassette_library/NdlBook/import/should_import_tactile_text.yml +28 -121
  37. data/spec/cassette_library/NdlBook/import/should_import_title_alternative.yml +27 -200
  38. data/spec/cassette_library/NdlBook/import/should_import_url_contain_whitespace.yml +24 -177
  39. data/spec/cassette_library/NdlBook/import/should_import_video_dvd.yml +25 -111
  40. data/spec/cassette_library/NdlBook/import/should_import_volume_number_string.yml +24 -193
  41. data/spec/cassette_library/NdlBook/import/should_import_volume_title.yml +25 -145
  42. data/spec/cassette_library/NdlBook/import/should_import_with_DDC_Fic_.yml +21 -24
  43. data/spec/cassette_library/NdlBook/import/should_not_get_series_title_if_book_has_not_series_title.yml +26 -124
  44. data/spec/cassette_library/NdlBook/import/should_not_get_volume_number_if_book_has_not_volume.yml +24 -105
  45. data/spec/cassette_library/NdlBook/search/should_not_distinguish_double_byte_space_from_one-byte_space_in_a_query.yml +53 -785
  46. data/spec/cassette_library/NdlBook/search/should_search_bibliographic_record.yml +26 -386
  47. data/spec/cassette_library/NdlBooksController/GET_index/should_get_index.yml +24 -463
  48. data/spec/cassette_library/NdlBooksController/POST_create/should_create_a_bibliographic_record_if_jpno_is_set.yml +24 -213
  49. data/spec/cassette_library/NdlBooksController/POST_create/should_create_a_serial_record.yml +28 -143
  50. data/spec/cassette_library/NdlBooksController/POST_create/should_not_create_a_bibliographic_record_if_jpno_is_not_set.yml +27 -22
  51. data/spec/cassette_library/Question/should_respond_to_search_crd.yml +12 -220
  52. data/spec/cassette_library/ndl_books/index/ndl_search_menu/should_reflect_query_params_for_views.yml +24 -384
  53. data/spec/dummy/db/schema.rb +920 -1004
  54. data/spec/dummy/db/test.sqlite3 +0 -0
  55. data/spec/dummy/solr/configsets/sunspot/conf/_rest_managed.json +1 -0
  56. data/spec/dummy/solr/configsets/sunspot/conf/admin-extra.html +31 -0
  57. data/spec/dummy/solr/configsets/sunspot/conf/currency.xml +67 -0
  58. data/spec/dummy/solr/configsets/sunspot/conf/elevate.xml +36 -0
  59. data/spec/dummy/solr/configsets/sunspot/conf/lang/stopwords_en.txt +54 -0
  60. data/spec/dummy/solr/configsets/sunspot/conf/mapping-ISOLatin1Accent.txt +246 -0
  61. data/spec/dummy/solr/configsets/sunspot/conf/protwords.txt +21 -0
  62. data/spec/dummy/solr/configsets/sunspot/conf/schema.xml +278 -0
  63. data/spec/dummy/solr/configsets/sunspot/conf/scripts.conf +24 -0
  64. data/spec/dummy/solr/configsets/sunspot/conf/solrconfig.xml +631 -0
  65. data/spec/dummy/solr/configsets/sunspot/conf/spellings.txt +2 -0
  66. data/spec/dummy/solr/configsets/sunspot/conf/synonyms.txt +29 -0
  67. data/spec/dummy/solr/default/data/index/segments_1 +0 -0
  68. data/spec/dummy/solr/default/data/index/write.lock +0 -0
  69. data/spec/dummy/solr/development/data/index/segments_1 +0 -0
  70. data/spec/dummy/solr/development/data/index/write.lock +0 -0
  71. data/spec/dummy/solr/pids/test/sunspot-solr-test.pid +1 -0
  72. data/spec/dummy/solr/solr.xml +51 -0
  73. data/spec/dummy/solr/test/data/index/_1p8.fdt +0 -0
  74. data/spec/dummy/solr/test/data/index/_1p8.fdx +0 -0
  75. data/spec/dummy/solr/test/data/index/_1p8.fnm +0 -0
  76. data/spec/dummy/solr/test/data/index/_1p8.nvd +0 -0
  77. data/spec/dummy/solr/test/data/index/_1p8.nvm +0 -0
  78. data/spec/dummy/solr/test/data/index/_1p8.si +0 -0
  79. data/spec/dummy/solr/test/data/index/_1p8_2.liv +0 -0
  80. data/spec/dummy/solr/test/data/index/_1p8_Lucene50_0.doc +0 -0
  81. data/spec/dummy/solr/test/data/index/_1p8_Lucene50_0.pos +0 -0
  82. data/spec/dummy/solr/test/data/index/_1p8_Lucene50_0.tim +0 -0
  83. data/spec/dummy/solr/test/data/index/_1p8_Lucene50_0.tip +0 -0
  84. data/spec/dummy/solr/test/data/index/_1pe.fdt +0 -0
  85. data/spec/dummy/solr/test/data/index/_1pe.fdx +0 -0
  86. data/spec/dummy/solr/test/data/index/_1pe.fnm +0 -0
  87. data/spec/dummy/solr/test/data/index/_1pe.nvd +0 -0
  88. data/spec/dummy/solr/test/data/index/_1pe.nvm +0 -0
  89. data/spec/dummy/solr/test/data/index/_1pe.si +0 -0
  90. data/spec/dummy/solr/test/data/index/_1pe_Lucene50_0.doc +0 -0
  91. data/spec/dummy/solr/test/data/index/_1pe_Lucene50_0.pos +0 -0
  92. data/spec/dummy/solr/test/data/index/_1pe_Lucene50_0.tim +0 -0
  93. data/spec/dummy/solr/test/data/index/_1pe_Lucene50_0.tip +0 -0
  94. data/spec/dummy/solr/test/data/index/_1pf.fdt +0 -0
  95. data/spec/dummy/solr/test/data/index/_1pf.fdx +0 -0
  96. data/spec/dummy/solr/test/data/index/_1pf.fnm +0 -0
  97. data/spec/dummy/solr/test/data/index/_1pf.nvd +0 -0
  98. data/spec/dummy/solr/test/data/index/_1pf.nvm +0 -0
  99. data/spec/dummy/solr/test/data/index/_1pf.si +0 -0
  100. data/spec/dummy/solr/test/data/index/_1pf_Lucene50_0.doc +0 -0
  101. data/spec/dummy/solr/test/data/index/_1pf_Lucene50_0.pos +0 -0
  102. data/spec/dummy/solr/test/data/index/_1pf_Lucene50_0.tim +0 -0
  103. data/spec/dummy/solr/test/data/index/_1pf_Lucene50_0.tip +0 -0
  104. data/spec/dummy/solr/test/data/index/segments_1p0 +0 -0
  105. data/spec/dummy/solr/test/data/index/write.lock +0 -0
  106. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002916 +0 -0
  107. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002918 +0 -0
  108. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002919 +0 -0
  109. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002920 +0 -0
  110. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002921 +0 -0
  111. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002922 +0 -0
  112. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002924 +0 -0
  113. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002925 +0 -0
  114. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002926 +0 -0
  115. data/spec/dummy/solr/test/data/tlog/tlog.0000000000000002927 +0 -0
  116. data/spec/models/import_request_spec.rb +4 -0
  117. data/spec/models/manifestation_spec.rb +9 -1
  118. data/spec/models/ndl_book_spec.rb +20 -5
  119. data/spec/views/ndl_books/index.html.erb_spec.rb +1 -1
  120. metadata +472 -340
  121. data/spec/cassette_library/Manifestation/should_imporrt_a_bibliographic_record.yml +0 -1211
@@ -0,0 +1,278 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+ <!--
19
+ This is the Solr schema file. This file should be named "schema.xml" and
20
+ should be in the conf directory under the solr home
21
+ (i.e. ./solr/conf/schema.xml by default)
22
+ or located where the classloader for the Solr webapp can find it.
23
+
24
+ This example schema is the recommended starting point for users.
25
+ It should be kept correct and concise, usable out-of-the-box.
26
+
27
+ For more information, on how to customize this file, please see
28
+ http://wiki.apache.org/solr/SchemaXml
29
+
30
+ PERFORMANCE NOTE: this schema includes many optional features and should not
31
+ be used for benchmarking. To improve performance one could
32
+ - set stored="false" for all fields possible (esp large fields) when you
33
+ only need to search on the field but don't need to return the original
34
+ value.
35
+ - set indexed="false" if you don't need to search on the field, but only
36
+ return the field as a result of searching on other indexed fields.
37
+ - remove all unneeded copyField statements
38
+ - for best index size and searching performance, set "index" to false
39
+ for all general text fields, use copyField to copy them to the
40
+ catchall "text" field, and use that for searching.
41
+ - For maximum indexing performance, use the StreamingUpdateSolrServer
42
+ java client.
43
+ - Remember to run the JVM in server mode, and use a higher logging level
44
+ that avoids logging every request
45
+ -->
46
+ <schema name="sunspot" version="1.0">
47
+ <types>
48
+ <!-- field type definitions. The "name" attribute is
49
+ just a label to be used by field definitions. The "class"
50
+ attribute and any other attributes determine the real
51
+ behavior of the fieldType.
52
+ Class names starting with "solr" refer to java classes in the
53
+ org.apache.solr.analysis package.
54
+ -->
55
+ <!-- *** This fieldType is used by Sunspot! *** -->
56
+ <fieldType name="string" class="solr.StrField" omitNorms="true"/>
57
+ <!-- *** This fieldType is used by Sunspot! *** -->
58
+ <fieldType name="tdouble" class="solr.TrieDoubleField" omitNorms="true"/>
59
+ <!-- *** This fieldType is used by Sunspot! *** -->
60
+ <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
61
+ <!-- *** This fieldType is used by Sunspot! *** -->
62
+ <fieldType name="text" class="solr.TextField" omitNorms="false">
63
+ <analyzer>
64
+ <tokenizer class="solr.StandardTokenizerFactory"/>
65
+ <filter class="solr.StandardFilterFactory"/>
66
+ <filter class="solr.LowerCaseFilterFactory"/>
67
+ <filter class="solr.PorterStemFilterFactory"/>
68
+ </analyzer>
69
+ </fieldType>
70
+ <!-- *** This fieldType is used by Sunspot! *** -->
71
+ <fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
72
+ <!-- *** This fieldType is used by Sunspot! *** -->
73
+ <fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
74
+ <!-- *** This fieldType is used by Sunspot! *** -->
75
+ <fieldType name="tlong" class="solr.TrieLongField" omitNorms="true"/>
76
+ <!-- *** This fieldType is used by Sunspot! *** -->
77
+ <fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
78
+ <!-- *** This fieldType is used by Sunspot! *** -->
79
+ <fieldType name="tdate" class="solr.TrieDateField"
80
+ omitNorms="true"/>
81
+
82
+ <fieldType name="daterange" class="solr.DateRangeField" omitNorms="true" />
83
+
84
+ <!-- Special field type for spell correction. Be careful about
85
+ adding filters here, as they apply *before* your values go in
86
+ the spellcheck. For example, the lowercase filter here means
87
+ all spelling suggestions will be lower case (without it,
88
+ though, you'd have duplicate suggestions for lower and proper
89
+ cased words). -->
90
+ <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
91
+ <analyzer>
92
+ <tokenizer class="solr.StandardTokenizerFactory"/>
93
+ <filter class="solr.StandardFilterFactory"/>
94
+ <filter class="solr.LowerCaseFilterFactory"/>
95
+ </analyzer>
96
+ </fieldType>
97
+ <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
98
+ <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
99
+ </types>
100
+ <fields>
101
+ <!-- Valid attributes for fields:
102
+ name: mandatory - the name for the field
103
+ type: mandatory - the name of a previously defined type from the
104
+ <types> section
105
+ indexed: true if this field should be indexed (searchable or sortable)
106
+ stored: true if this field should be retrievable
107
+ compressed: [false] if this field should be stored using gzip compression
108
+ (this will only apply if the field type is compressable; among
109
+ the standard field types, only TextField and StrField are)
110
+ multiValued: true if this field may contain multiple values per document
111
+ omitNorms: (expert) set to true to omit the norms associated with
112
+ this field (this disables length normalization and index-time
113
+ boosting for the field, and saves some memory). Only full-text
114
+ fields or fields that need an index-time boost need norms.
115
+ termVectors: [false] set to true to store the term vector for a
116
+ given field.
117
+ When using MoreLikeThis, fields used for similarity should be
118
+ stored for best performance.
119
+ termPositions: Store position information with the term vector.
120
+ This will increase storage costs.
121
+ termOffsets: Store offset information with the term vector. This
122
+ will increase storage costs.
123
+ default: a value that should be used if no value is specified
124
+ when adding a document.
125
+ -->
126
+ <!-- *** This field is used by Sunspot! *** -->
127
+ <field name="id" stored="true" type="string" multiValued="false" indexed="true"/>
128
+ <!-- *** This field is used by Sunspot! *** -->
129
+ <field name="type" stored="false" type="string" multiValued="true" indexed="true"/>
130
+ <!-- *** This field is used by Sunspot! *** -->
131
+ <field name="class_name" stored="false" type="string" multiValued="false" indexed="true"/>
132
+ <!-- *** This field is used by Sunspot! *** -->
133
+ <field name="text" stored="false" type="string" multiValued="true" indexed="true"/>
134
+ <!-- *** This field is used by Sunspot! *** -->
135
+ <field name="lat" stored="true" type="tdouble" multiValued="false" indexed="true"/>
136
+ <!-- *** This field is used by Sunspot! *** -->
137
+ <field name="lng" stored="true" type="tdouble" multiValued="false" indexed="true"/>
138
+ <!-- *** This dynamicField is used by Sunspot! *** -->
139
+ <dynamicField name="random_*" stored="false" type="rand" multiValued="false" indexed="true"/>
140
+ <!-- *** This dynamicField is used by Sunspot! *** -->
141
+ <dynamicField name="_local*" stored="false" type="tdouble" multiValued="false" indexed="true"/>
142
+ <!-- *** This dynamicField is used by Sunspot! *** -->
143
+ <dynamicField name="*_text" stored="false" type="text" multiValued="true" indexed="true"/>
144
+ <!-- *** This dynamicField is used by Sunspot! *** -->
145
+ <dynamicField name="*_texts" stored="true" type="text" multiValued="true" indexed="true"/>
146
+ <!-- *** This dynamicField is used by Sunspot! *** -->
147
+ <dynamicField name="*_b" stored="false" type="boolean" multiValued="false" indexed="true"/>
148
+ <!-- *** This dynamicField is used by Sunspot! *** -->
149
+ <dynamicField name="*_bm" stored="false" type="boolean" multiValued="true" indexed="true"/>
150
+ <!-- *** This dynamicField is used by Sunspot! *** -->
151
+ <dynamicField name="*_bs" stored="true" type="boolean" multiValued="false" indexed="true"/>
152
+ <!-- *** This dynamicField is used by Sunspot! *** -->
153
+ <dynamicField name="*_bms" stored="true" type="boolean" multiValued="true" indexed="true"/>
154
+ <!-- *** This dynamicField is used by Sunspot! *** -->
155
+ <dynamicField name="*_d" stored="false" type="tdate" multiValued="false" indexed="true"/>
156
+ <!-- *** This dynamicField is used by Sunspot! *** -->
157
+ <dynamicField name="*_dm" stored="false" type="tdate" multiValued="true" indexed="true"/>
158
+ <!-- *** This dynamicField is used by Sunspot! *** -->
159
+ <dynamicField name="*_ds" stored="true" type="tdate" multiValued="false" indexed="true"/>
160
+ <!-- *** This dynamicField is used by Sunspot! *** -->
161
+ <dynamicField name="*_dms" stored="true" type="tdate" multiValued="true" indexed="true"/>
162
+ <!-- *** This dynamicField is used by Sunspot! *** -->
163
+ <dynamicField name="*_e" stored="false" type="tdouble" multiValued="false" indexed="true"/>
164
+ <!-- *** This dynamicField is used by Sunspot! *** -->
165
+ <dynamicField name="*_em" stored="false" type="tdouble" multiValued="true" indexed="true"/>
166
+ <!-- *** This dynamicField is used by Sunspot! *** -->
167
+ <dynamicField name="*_es" stored="true" type="tdouble" multiValued="false" indexed="true"/>
168
+ <!-- *** This dynamicField is used by Sunspot! *** -->
169
+ <dynamicField name="*_ems" stored="true" type="tdouble" multiValued="true" indexed="true"/>
170
+ <!-- *** This dynamicField is used by Sunspot! *** -->
171
+ <dynamicField name="*_f" stored="false" type="tfloat" multiValued="false" indexed="true"/>
172
+ <!-- *** This dynamicField is used by Sunspot! *** -->
173
+ <dynamicField name="*_fm" stored="false" type="tfloat" multiValued="true" indexed="true"/>
174
+ <!-- *** This dynamicField is used by Sunspot! *** -->
175
+ <dynamicField name="*_fs" stored="true" type="tfloat" multiValued="false" indexed="true"/>
176
+ <!-- *** This dynamicField is used by Sunspot! *** -->
177
+ <dynamicField name="*_fms" stored="true" type="tfloat" multiValued="true" indexed="true"/>
178
+ <!-- *** This dynamicField is used by Sunspot! *** -->
179
+ <dynamicField name="*_i" stored="false" type="tint" multiValued="false" indexed="true"/>
180
+ <!-- *** This dynamicField is used by Sunspot! *** -->
181
+ <dynamicField name="*_im" stored="false" type="tint" multiValued="true" indexed="true"/>
182
+ <!-- *** This dynamicField is used by Sunspot! *** -->
183
+ <dynamicField name="*_is" stored="true" type="tint" multiValued="false" indexed="true"/>
184
+ <!-- *** This dynamicField is used by Sunspot! *** -->
185
+ <dynamicField name="*_ims" stored="true" type="tint" multiValued="true" indexed="true"/>
186
+ <!-- *** This dynamicField is used by Sunspot! *** -->
187
+ <dynamicField name="*_l" stored="false" type="tlong" multiValued="false" indexed="true"/>
188
+ <!-- *** This dynamicField is used by Sunspot! *** -->
189
+ <dynamicField name="*_lm" stored="false" type="tlong" multiValued="true" indexed="true"/>
190
+ <!-- *** This dynamicField is used by Sunspot! *** -->
191
+ <dynamicField name="*_ls" stored="true" type="tlong" multiValued="false" indexed="true"/>
192
+ <!-- *** This dynamicField is used by Sunspot! *** -->
193
+ <dynamicField name="*_lms" stored="true" type="tlong" multiValued="true" indexed="true"/>
194
+ <!-- *** This dynamicField is used by Sunspot! *** -->
195
+ <dynamicField name="*_s" stored="false" type="string" multiValued="false" indexed="true"/>
196
+ <!-- *** This dynamicField is used by Sunspot! *** -->
197
+ <dynamicField name="*_sm" stored="false" type="string" multiValued="true" indexed="true"/>
198
+ <!-- *** This dynamicField is used by Sunspot! *** -->
199
+ <dynamicField name="*_ss" stored="true" type="string" multiValued="false" indexed="true"/>
200
+ <!-- *** This dynamicField is used by Sunspot! *** -->
201
+ <dynamicField name="*_sms" stored="true" type="string" multiValued="true" indexed="true"/>
202
+ <!-- *** This dynamicField is used by Sunspot! *** -->
203
+ <dynamicField name="*_it" stored="false" type="tint" multiValued="false" indexed="true"/>
204
+ <!-- *** This dynamicField is used by Sunspot! *** -->
205
+ <dynamicField name="*_itm" stored="false" type="tint" multiValued="true" indexed="true"/>
206
+ <!-- *** This dynamicField is used by Sunspot! *** -->
207
+ <dynamicField name="*_its" stored="true" type="tint" multiValued="false" indexed="true"/>
208
+ <!-- *** This dynamicField is used by Sunspot! *** -->
209
+ <dynamicField name="*_itms" stored="true" type="tint" multiValued="true" indexed="true"/>
210
+ <!-- *** This dynamicField is used by Sunspot! *** -->
211
+ <dynamicField name="*_ft" stored="false" type="tfloat" multiValued="false" indexed="true"/>
212
+ <!-- *** This dynamicField is used by Sunspot! *** -->
213
+ <dynamicField name="*_ftm" stored="false" type="tfloat" multiValued="true" indexed="true"/>
214
+ <!-- *** This dynamicField is used by Sunspot! *** -->
215
+ <dynamicField name="*_fts" stored="true" type="tfloat" multiValued="false" indexed="true"/>
216
+ <!-- *** This dynamicField is used by Sunspot! *** -->
217
+ <dynamicField name="*_ftms" stored="true" type="tfloat" multiValued="true" indexed="true"/>
218
+ <!-- *** This dynamicField is used by Sunspot! *** -->
219
+ <dynamicField name="*_dt" stored="false" type="tdate" multiValued="false" indexed="true"/>
220
+ <!-- *** This dynamicField is used by Sunspot! *** -->
221
+ <dynamicField name="*_dtm" stored="false" type="tdate" multiValued="true" indexed="true"/>
222
+ <!-- *** This dynamicField is used by Sunspot! *** -->
223
+ <dynamicField name="*_dts" stored="true" type="tdate" multiValued="false" indexed="true"/>
224
+ <!-- *** This dynamicField is used by Sunspot! *** -->
225
+ <dynamicField name="*_dtms" stored="true" type="tdate" multiValued="true" indexed="true"/>
226
+ <!-- *** This dynamicField is used by Sunspot! *** -->
227
+ <dynamicField name="*_textv" stored="false" termVectors="true" type="text" multiValued="true" indexed="true"/>
228
+ <!-- *** This dynamicField is used by Sunspot! *** -->
229
+ <dynamicField name="*_textsv" stored="true" termVectors="true" type="text" multiValued="true" indexed="true"/>
230
+ <!-- *** This dynamicField is used by Sunspot! *** -->
231
+ <dynamicField name="*_et" stored="false" termVectors="true" type="tdouble" multiValued="false" indexed="true"/>
232
+ <!-- *** This dynamicField is used by Sunspot! *** -->
233
+ <dynamicField name="*_etm" stored="false" termVectors="true" type="tdouble" multiValued="true" indexed="true"/>
234
+ <!-- *** This dynamicField is used by Sunspot! *** -->
235
+ <dynamicField name="*_ets" stored="true" termVectors="true" type="tdouble" multiValued="false" indexed="true"/>
236
+ <!-- *** This dynamicField is used by Sunspot! *** -->
237
+ <dynamicField name="*_etms" stored="true" termVectors="true" type="tdouble" multiValued="true" indexed="true"/>
238
+ <!-- *** This dynamicField is used by Sunspot! *** -->
239
+ <dynamicField name="*_dr" stored="false" type="daterange" multiValued="false" indexed="true" />
240
+ <!-- *** This dynamicField is used by Sunspot! *** -->
241
+ <dynamicField name="*_drm" stored="false" type="daterange" multiValued="true" indexed="true" />
242
+ <!-- *** This dynamicField is used by Sunspot! *** -->
243
+ <dynamicField name="*_drs" stored="true" type="daterange" multiValued="false" indexed="true" />
244
+ <!-- *** This dynamicField is used by Sunspot! *** -->
245
+ <dynamicField name="*_drms" stored="true" type="daterange" multiValued="true" indexed="true" />
246
+
247
+ <!-- Type used to index the lat and lon components for the "location" FieldType -->
248
+ <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" multiValued="false"/>
249
+ <dynamicField name="*_p" type="location" indexed="true" stored="true" multiValued="false"/>
250
+
251
+ <dynamicField name="*_ll" stored="false" type="location" multiValued="false" indexed="true"/>
252
+ <dynamicField name="*_llm" stored="false" type="location" multiValued="true" indexed="true"/>
253
+ <dynamicField name="*_lls" stored="true" type="location" multiValued="false" indexed="true"/>
254
+ <dynamicField name="*_llms" stored="true" type="location" multiValued="true" indexed="true"/>
255
+ <field name="textSpell" stored="false" type="textSpell" multiValued="true" indexed="true"/>
256
+
257
+ <!-- required by Solr 5 -->
258
+ <field name="_version_" type="tlong" indexed="true" stored="true" multiValued="false" />
259
+ </fields>
260
+
261
+ <!-- Field to use to determine and enforce document uniqueness.
262
+ Unless this field is marked with required="false", it will be a required field
263
+ -->
264
+ <uniqueKey>id</uniqueKey>
265
+ <!-- field for the QueryParser to use when an explicit fieldname is absent -->
266
+ <defaultSearchField>text</defaultSearchField>
267
+ <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
268
+ <solrQueryParser defaultOperator="AND"/>
269
+ <!-- copyField commands copy one field to another at the time a document
270
+ is added to the index. It's used either to index the same field differently,
271
+ or to add multiple fields to the same field for easier/faster
272
+ searching. -->
273
+
274
+ <!-- Use copyField to copy the fields you want to run spell checking
275
+ on into one field. For example: -->
276
+ <copyField source="*_text" dest="textSpell" />
277
+ <copyField source="*_s" dest="textSpell" />
278
+ </schema>
@@ -0,0 +1,24 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright ownership.
4
+ # The ASF licenses this file to You under the Apache License, Version 2.0
5
+ # (the "License"); you may not use this file except in compliance with
6
+ # the License. You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ user=
17
+ solr_hostname=localhost
18
+ solr_port=8983
19
+ rsyncd_port=18983
20
+ data_dir=
21
+ webapp_name=solr
22
+ master_host=
23
+ master_data_dir=
24
+ master_status_dir=
@@ -0,0 +1,631 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+ <!--
20
+ For more details about configurations options that may appear in
21
+ this file, see http://wiki.apache.org/solr/SolrConfigXml.
22
+ -->
23
+ <config>
24
+ <!-- In all configuration below, a prefix of "solr." for class names
25
+ is an alias that causes solr to search appropriate packages,
26
+ including org.apache.solr.(search|update|request|core|analysis)
27
+
28
+ You may also specify a fully qualified Java classname if you
29
+ have your own custom plugins.
30
+ -->
31
+
32
+ <!-- Controls what version of Lucene various components of Solr
33
+ adhere to. Generally, you want to use the latest version to
34
+ get all bug fixes and improvements. It is highly recommended
35
+ that you fully re-index after changing this setting as it can
36
+ affect both how text is indexed and queried.
37
+ -->
38
+ <luceneMatchVersion>5.0.0</luceneMatchVersion>
39
+
40
+ <!-- Data Directory
41
+
42
+ Used to specify an alternate directory to hold all index data
43
+ other than the default ./data under the Solr home. If
44
+ replication is in use, this should match the replication
45
+ configuration.
46
+ -->
47
+ <dataDir>${solr.data.dir:}</dataDir>
48
+
49
+
50
+ <!-- The DirectoryFactory to use for indexes.
51
+
52
+ solr.StandardDirectoryFactory is filesystem
53
+ based and tries to pick the best implementation for the current
54
+ JVM and platform. solr.NRTCachingDirectoryFactory, the default,
55
+ wraps solr.StandardDirectoryFactory and caches small files in memory
56
+ for better NRT performance.
57
+
58
+ One can force a particular implementation via solr.MMapDirectoryFactory,
59
+ solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
60
+
61
+ solr.RAMDirectoryFactory is memory based, not
62
+ persistent, and doesn't work with replication.
63
+ -->
64
+ <directoryFactory name="DirectoryFactory"
65
+ class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
66
+ </directoryFactory>
67
+
68
+ <!-- The CodecFactory for defining the format of the inverted index.
69
+ The default implementation is SchemaCodecFactory, which is the official Lucene
70
+ index format, but hooks into the schema to provide per-field customization of
71
+ the postings lists and per-document values in the fieldType element
72
+ (postingsFormat/docValuesFormat). Note that most of the alternative implementations
73
+ are experimental, so if you choose to customize the index format, it's a good
74
+ idea to convert back to the official format e.g. via IndexWriter.addIndexes(IndexReader)
75
+ before upgrading to a newer version to avoid unnecessary reindexing.
76
+ -->
77
+ <codecFactory class="solr.SchemaCodecFactory"/>
78
+
79
+ <schemaFactory class="ClassicIndexSchemaFactory"/>
80
+
81
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82
+ Index Config - These settings control low-level behavior of indexing
83
+ Most example settings here show the default value, but are commented
84
+ out, to more easily see where customizations have been made.
85
+
86
+ Note: This replaces <indexDefaults> and <mainIndex> from older versions
87
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
88
+ <indexConfig>
89
+
90
+ <!-- LockFactory
91
+
92
+ This option specifies which Lucene LockFactory implementation
93
+ to use.
94
+
95
+ single = SingleInstanceLockFactory - suggested for a
96
+ read-only index or when there is no possibility of
97
+ another process trying to modify the index.
98
+ native = NativeFSLockFactory - uses OS native file locking.
99
+ Do not use when multiple solr webapps in the same
100
+ JVM are attempting to share a single index.
101
+ simple = SimpleFSLockFactory - uses a plain file for locking
102
+
103
+ Defaults: 'native' is default for Solr3.6 and later, otherwise
104
+ 'simple' is the default
105
+
106
+ More details on the nuances of each LockFactory...
107
+ http://wiki.apache.org/lucene-java/AvailableLockFactories
108
+ -->
109
+ <lockType>${solr.lock.type:native}</lockType>
110
+
111
+ <!-- Lucene Infostream
112
+
113
+ To aid in advanced debugging, Lucene provides an "InfoStream"
114
+ of detailed information when indexing.
115
+
116
+ Setting the value to true will instruct the underlying Lucene
117
+ IndexWriter to write its info stream to solr's log. By default,
118
+ this is enabled here, and controlled through log4j.properties.
119
+ -->
120
+ <infoStream>true</infoStream>
121
+ </indexConfig>
122
+
123
+
124
+ <!-- JMX
125
+
126
+ This example enables JMX if and only if an existing MBeanServer
127
+ is found, use this if you want to configure JMX through JVM
128
+ parameters. Remove this to disable exposing Solr configuration
129
+ and statistics to JMX.
130
+
131
+ For more details see http://wiki.apache.org/solr/SolrJmx
132
+ -->
133
+ <jmx />
134
+ <!-- If you want to connect to a particular server, specify the
135
+ agentId
136
+ -->
137
+ <!-- <jmx agentId="myAgent" /> -->
138
+ <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
139
+ <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
140
+ -->
141
+
142
+ <!-- The default high-performance update handler -->
143
+ <updateHandler class="solr.DirectUpdateHandler2">
144
+
145
+ <!-- Enables a transaction log, used for real-time get, durability, and
146
+ and solr cloud replica recovery. The log can grow as big as
147
+ uncommitted changes to the index, so use of a hard autoCommit
148
+ is recommended (see below).
149
+ "dir" - the target directory for transaction logs, defaults to the
150
+ solr data directory. -->
151
+ <updateLog>
152
+ <str name="dir">${solr.ulog.dir:}</str>
153
+ </updateLog>
154
+
155
+ <!-- AutoCommit
156
+
157
+ Perform a hard commit automatically under certain conditions.
158
+ Instead of enabling autoCommit, consider using "commitWithin"
159
+ when adding documents.
160
+
161
+ http://wiki.apache.org/solr/UpdateXmlMessages
162
+
163
+ maxDocs - Maximum number of documents to add since the last
164
+ commit before automatically triggering a new commit.
165
+
166
+ maxTime - Maximum amount of time in ms that is allowed to pass
167
+ since a document was added before automatically
168
+ triggering a new commit.
169
+ openSearcher - if false, the commit causes recent index changes
170
+ to be flushed to stable storage, but does not cause a new
171
+ searcher to be opened to make those changes visible.
172
+
173
+ If the updateLog is enabled, then it's highly recommended to
174
+ have some sort of hard autoCommit to limit the log size.
175
+ -->
176
+ <autoCommit>
177
+ <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
178
+ <openSearcher>false</openSearcher>
179
+ </autoCommit>
180
+
181
+ <!-- softAutoCommit is like autoCommit except it causes a
182
+ 'soft' commit which only ensures that changes are visible
183
+ but does not ensure that data is synced to disk. This is
184
+ faster and more near-realtime friendly than a hard commit.
185
+ -->
186
+ <autoSoftCommit>
187
+ <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
188
+ </autoSoftCommit>
189
+
190
+ </updateHandler>
191
+
192
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
193
+ Query section - these settings control query time things like caches
194
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
195
+ <query>
196
+ <!-- Max Boolean Clauses
197
+
198
+ Maximum number of clauses in each BooleanQuery, an exception
199
+ is thrown if exceeded.
200
+
201
+ ** WARNING **
202
+
203
+ This option actually modifies a global Lucene property that
204
+ will affect all SolrCores. If multiple solrconfig.xml files
205
+ disagree on this property, the value at any given moment will
206
+ be based on the last SolrCore to be initialized.
207
+
208
+ -->
209
+ <maxBooleanClauses>1024</maxBooleanClauses>
210
+
211
+
212
+ <!-- Solr Internal Query Caches
213
+
214
+ There are two implementations of cache available for Solr,
215
+ LRUCache, based on a synchronized LinkedHashMap, and
216
+ FastLRUCache, based on a ConcurrentHashMap.
217
+
218
+ FastLRUCache has faster gets and slower puts in single
219
+ threaded operation and thus is generally faster than LRUCache
220
+ when the hit ratio of the cache is high (> 75%), and may be
221
+ faster under other scenarios on multi-cpu systems.
222
+ -->
223
+
224
+ <!-- Filter Cache
225
+
226
+ Cache used by SolrIndexSearcher for filters (DocSets),
227
+ unordered sets of *all* documents that match a query. When a
228
+ new searcher is opened, its caches may be prepopulated or
229
+ "autowarmed" using data from caches in the old searcher.
230
+ autowarmCount is the number of items to prepopulate. For
231
+ LRUCache, the autowarmed items will be the most recently
232
+ accessed items.
233
+
234
+ Parameters:
235
+ class - the SolrCache implementation LRUCache or
236
+ (LRUCache or FastLRUCache)
237
+ size - the maximum number of entries in the cache
238
+ initialSize - the initial capacity (number of entries) of
239
+ the cache. (see java.util.HashMap)
240
+ autowarmCount - the number of entries to prepopulate from
241
+ and old cache.
242
+ -->
243
+ <filterCache class="solr.FastLRUCache"
244
+ size="512"
245
+ initialSize="512"
246
+ autowarmCount="0"/>
247
+
248
+ <!-- Query Result Cache
249
+
250
+ Caches results of searches - ordered lists of document ids
251
+ (DocList) based on a query, a sort, and the range of documents requested.
252
+ -->
253
+ <queryResultCache class="solr.LRUCache"
254
+ size="512"
255
+ initialSize="512"
256
+ autowarmCount="0"/>
257
+
258
+ <!-- Document Cache
259
+
260
+ Caches Lucene Document objects (the stored fields for each
261
+ document). Since Lucene internal document ids are transient,
262
+ this cache will not be autowarmed.
263
+ -->
264
+ <documentCache class="solr.LRUCache"
265
+ size="512"
266
+ initialSize="512"
267
+ autowarmCount="0"/>
268
+
269
+ <!-- custom cache currently used by block join -->
270
+ <cache name="perSegFilter"
271
+ class="solr.search.LRUCache"
272
+ size="10"
273
+ initialSize="0"
274
+ autowarmCount="10"
275
+ regenerator="solr.NoOpRegenerator" />
276
+
277
+ <!-- Lazy Field Loading
278
+
279
+ If true, stored fields that are not requested will be loaded
280
+ lazily. This can result in a significant speed improvement
281
+ if the usual case is to not load all stored fields,
282
+ especially if the skipped fields are large compressed text
283
+ fields.
284
+ -->
285
+ <enableLazyFieldLoading>true</enableLazyFieldLoading>
286
+
287
+ <!-- Result Window Size
288
+
289
+ An optimization for use with the queryResultCache. When a search
290
+ is requested, a superset of the requested number of document ids
291
+ are collected. For example, if a search for a particular query
292
+ requests matching documents 10 through 19, and queryWindowSize is 50,
293
+ then documents 0 through 49 will be collected and cached. Any further
294
+ requests in that range can be satisfied via the cache.
295
+ -->
296
+ <queryResultWindowSize>20</queryResultWindowSize>
297
+
298
+ <!-- Maximum number of documents to cache for any entry in the
299
+ queryResultCache.
300
+ -->
301
+ <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
302
+
303
+ <!-- Use Cold Searcher
304
+
305
+ If a search request comes in and there is no current
306
+ registered searcher, then immediately register the still
307
+ warming searcher and use it. If "false" then all requests
308
+ will block until the first searcher is done warming.
309
+ -->
310
+ <useColdSearcher>false</useColdSearcher>
311
+
312
+ <!-- Max Warming Searchers
313
+
314
+ Maximum number of searchers that may be warming in the
315
+ background concurrently. An error is returned if this limit
316
+ is exceeded.
317
+
318
+ Recommend values of 1-2 for read-only slaves, higher for
319
+ masters w/o cache warming.
320
+ -->
321
+ <maxWarmingSearchers>2</maxWarmingSearchers>
322
+
323
+ </query>
324
+
325
+
326
+ <!-- Request Dispatcher
327
+
328
+ This section contains instructions for how the SolrDispatchFilter
329
+ should behave when processing requests for this SolrCore.
330
+
331
+ handleSelect is a legacy option that affects the behavior of requests
332
+ such as /select?qt=XXX
333
+
334
+ handleSelect="true" will cause the SolrDispatchFilter to process
335
+ the request and dispatch the query to a handler specified by the
336
+ "qt" param, assuming "/select" isn't already registered.
337
+
338
+ handleSelect="false" will cause the SolrDispatchFilter to
339
+ ignore "/select" requests, resulting in a 404 unless a handler
340
+ is explicitly registered with the name "/select"
341
+
342
+ handleSelect="true" is not recommended for new users, but is the default
343
+ for backwards compatibility
344
+ -->
345
+ <requestDispatcher handleSelect="false" >
346
+ <!-- Request Parsing
347
+
348
+ These settings indicate how Solr Requests may be parsed, and
349
+ what restrictions may be placed on the ContentStreams from
350
+ those requests
351
+
352
+ enableRemoteStreaming - enables use of the stream.file
353
+ and stream.url parameters for specifying remote streams.
354
+
355
+ multipartUploadLimitInKB - specifies the max size (in KiB) of
356
+ Multipart File Uploads that Solr will allow in a Request.
357
+
358
+ formdataUploadLimitInKB - specifies the max size (in KiB) of
359
+ form data (application/x-www-form-urlencoded) sent via
360
+ POST. You can use POST to pass request parameters not
361
+ fitting into the URL.
362
+
363
+ addHttpRequestToContext - if set to true, it will instruct
364
+ the requestParsers to include the original HttpServletRequest
365
+ object in the context map of the SolrQueryRequest under the
366
+ key "httpRequest". It will not be used by any of the existing
367
+ Solr components, but may be useful when developing custom
368
+ plugins.
369
+
370
+ *** WARNING ***
371
+ The settings below authorize Solr to fetch remote files, You
372
+ should make sure your system has some authentication before
373
+ using enableRemoteStreaming="true"
374
+
375
+ -->
376
+ <requestParsers enableRemoteStreaming="true"
377
+ multipartUploadLimitInKB="2048000"
378
+ formdataUploadLimitInKB="2048"
379
+ addHttpRequestToContext="false"/>
380
+
381
+ <!-- HTTP Caching
382
+
383
+ Set HTTP caching related parameters (for proxy caches and clients).
384
+
385
+ The options below instruct Solr not to output any HTTP Caching
386
+ related headers
387
+ -->
388
+ <httpCaching never304="true" />
389
+
390
+ </requestDispatcher>
391
+
392
+ <!-- Request Handlers
393
+
394
+ http://wiki.apache.org/solr/SolrRequestHandler
395
+
396
+ Incoming queries will be dispatched to a specific handler by name
397
+ based on the path specified in the request.
398
+
399
+ Legacy behavior: If the request path uses "/select" but no Request
400
+ Handler has that name, and if handleSelect="true" has been specified in
401
+ the requestDispatcher, then the Request Handler is dispatched based on
402
+ the qt parameter. Handlers without a leading '/' are accessed this way
403
+ like so: http://host/app/[core/]select?qt=name If no qt is
404
+ given, then the requestHandler that declares default="true" will be
405
+ used or the one named "standard".
406
+
407
+ If a Request Handler is declared with startup="lazy", then it will
408
+ not be initialized until the first request that uses it.
409
+
410
+ -->
411
+ <!-- SearchHandler
412
+
413
+ http://wiki.apache.org/solr/SearchHandler
414
+
415
+ For processing Search Queries, the primary Request Handler
416
+ provided with Solr is "SearchHandler" It delegates to a sequent
417
+ of SearchComponents (see below) and supports distributed
418
+ queries across multiple shards
419
+ -->
420
+ <requestHandler name="/select" class="solr.SearchHandler">
421
+ <lst name="defaults">
422
+ <str name="spellcheck.dictionary">default</str>
423
+ <str name="spellcheck.extendedResults">true</str>
424
+ <str name="spellcheck.collate">true</str>
425
+ </lst>
426
+ <arr name="last-components">
427
+ <str>spellcheck</str>
428
+ </arr>
429
+ </requestHandler>
430
+
431
+ <!-- A request handler that returns indented JSON by default -->
432
+ <requestHandler name="/query" class="solr.SearchHandler">
433
+ <lst name="defaults">
434
+ <str name="echoParams">explicit</str>
435
+ <str name="wt">json</str>
436
+ <str name="indent">true</str>
437
+ <str name="df">text</str>
438
+ </lst>
439
+ <arr name="last-components">
440
+ <str>spellcheck</str>
441
+ </arr>
442
+ </requestHandler>
443
+
444
+ <!--
445
+ The export request handler is used to export full sorted result sets.
446
+ Do not change these defaults.
447
+ -->
448
+ <requestHandler name="/export" class="solr.SearchHandler">
449
+ <lst name="invariants">
450
+ <str name="rq">{!xport}</str>
451
+ <str name="wt">xsort</str>
452
+ <str name="distrib">false</str>
453
+ </lst>
454
+
455
+ <arr name="components">
456
+ <str>query</str>
457
+ </arr>
458
+ </requestHandler>
459
+
460
+
461
+ <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
462
+ <lst name="defaults">
463
+ <str name="df">text</str>
464
+ </lst>
465
+ </initParams>
466
+
467
+ <!-- Field Analysis Request Handler
468
+
469
+ RequestHandler that provides much the same functionality as
470
+ analysis.jsp. Provides the ability to specify multiple field
471
+ types and field names in the same request and outputs
472
+ index-time and query-time analysis for each of them.
473
+
474
+ Request parameters are:
475
+ analysis.fieldname - field name whose analyzers are to be used
476
+
477
+ analysis.fieldtype - field type whose analyzers are to be used
478
+ analysis.fieldvalue - text for index-time analysis
479
+ q (or analysis.q) - text for query time analysis
480
+ analysis.showmatch (true|false) - When set to true and when
481
+ query analysis is performed, the produced tokens of the
482
+ field value analysis will be marked as "matched" for every
483
+ token that is produces by the query analysis
484
+ -->
485
+ <requestHandler name="/analysis/field"
486
+ startup="lazy"
487
+ class="solr.FieldAnalysisRequestHandler" />
488
+
489
+
490
+ <!-- Document Analysis Handler
491
+
492
+ http://wiki.apache.org/solr/AnalysisRequestHandler
493
+
494
+ An analysis handler that provides a breakdown of the analysis
495
+ process of provided documents. This handler expects a (single)
496
+ content stream with the following format:
497
+
498
+ <docs>
499
+ <doc>
500
+ <field name="id">1</field>
501
+ <field name="name">The Name</field>
502
+ <field name="text">The Text Value</field>
503
+ </doc>
504
+ <doc>...</doc>
505
+ <doc>...</doc>
506
+ ...
507
+ </docs>
508
+
509
+ Note: Each document must contain a field which serves as the
510
+ unique key. This key is used in the returned response to associate
511
+ an analysis breakdown to the analyzed document.
512
+
513
+ Like the FieldAnalysisRequestHandler, this handler also supports
514
+ query analysis by sending either an "analysis.query" or "q"
515
+ request parameter that holds the query text to be analyzed. It
516
+ also supports the "analysis.showmatch" parameter which when set to
517
+ true, all field tokens that match the query tokens will be marked
518
+ as a "match".
519
+ -->
520
+ <requestHandler name="/analysis/document"
521
+ class="solr.DocumentAnalysisRequestHandler"
522
+ startup="lazy" />
523
+
524
+ <!-- Echo the request contents back to the client -->
525
+ <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
526
+ <lst name="defaults">
527
+ <str name="echoParams">explicit</str>
528
+ <str name="echoHandler">true</str>
529
+ </lst>
530
+ </requestHandler>
531
+
532
+ <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
533
+
534
+ <str name="queryAnalyzerFieldType">textSpell</str>
535
+
536
+ <!-- Multiple "Spell Checkers" can be declared and used by this
537
+ component
538
+ -->
539
+ <lst name="spellchecker">
540
+ <str name="name">default</str>
541
+ <!-- change field to textSpell and use copyField in schema.xml
542
+ to spellcheck multiple fields -->
543
+ <str name="field">textSpell</str>
544
+ <str name="buildOnOptimize">true</str>
545
+ </lst>
546
+
547
+ <lst name="spellchecker">
548
+ <str name="name">example</str>
549
+ <str name="field">title_text</str>
550
+ <str name="buildOnOptimize">true</str>
551
+ <str name="classname">solr.DirectSolrSpellChecker</str>
552
+ <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
553
+ <str name="distanceMeasure">internal</str>
554
+ <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
555
+ <float name="accuracy">0.5</float>
556
+ <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
557
+ <int name="maxEdits">2</int>
558
+ <!-- the minimum shared prefix when enumerating terms -->
559
+ <int name="minPrefix">1</int>
560
+ <!-- maximum number of inspections per result. -->
561
+ <int name="maxInspections">5</int>
562
+ <!-- minimum length of a query term to be considered for correction -->
563
+ <int name="minQueryLength">4</int>
564
+ <!-- maximum threshold of documents a query term can appear to be considered for correction -->
565
+ <float name="maxQueryFrequency">0.01</float>
566
+ <!-- uncomment this to require suggestions to occur in 1% of the documents
567
+ <float name="thresholdTokenFrequency">.01</float>
568
+ -->
569
+ </lst>
570
+
571
+ <!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
572
+ <lst name="spellchecker">
573
+ <str name="name">wordbreak</str>
574
+ <str name="classname">solr.WordBreakSolrSpellChecker</str>
575
+ <str name="field">name</str>
576
+ <str name="combineWords">true</str>
577
+ <str name="breakWords">true</str>
578
+ <int name="maxChanges">10</int>
579
+ </lst>
580
+ -->
581
+ </searchComponent>
582
+
583
+ <!-- Search Components
584
+
585
+ Search components are registered to SolrCore and used by
586
+ instances of SearchHandler (which can access them by name)
587
+
588
+ By default, the following components are available:
589
+
590
+ <searchComponent name="query" class="solr.QueryComponent" />
591
+ <searchComponent name="facet" class="solr.FacetComponent" />
592
+ <searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
593
+ <searchComponent name="highlight" class="solr.HighlightComponent" />
594
+ <searchComponent name="stats" class="solr.StatsComponent" />
595
+ <searchComponent name="debug" class="solr.DebugComponent" />
596
+
597
+ -->
598
+
599
+ <!-- Terms Component
600
+
601
+ http://wiki.apache.org/solr/TermsComponent
602
+
603
+ A component to return terms and document frequency of those
604
+ terms
605
+ -->
606
+ <searchComponent name="terms" class="solr.TermsComponent"/>
607
+
608
+ <!-- A request handler for demonstrating the terms component -->
609
+ <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
610
+ <lst name="defaults">
611
+ <bool name="terms">true</bool>
612
+ <bool name="distrib">false</bool>
613
+ </lst>
614
+ <arr name="components">
615
+ <str>terms</str>
616
+ </arr>
617
+ </requestHandler>
618
+
619
+ <requestHandler class="solr.MoreLikeThisHandler" name="/mlt">
620
+ <lst name="defaults">
621
+ <str name="mlt.mintf">1</str>
622
+ <str name="mlt.mindf">2</str>
623
+ </lst>
624
+ </requestHandler>
625
+
626
+ <!-- Legacy config for the admin interface -->
627
+ <admin>
628
+ <defaultQuery>*:*</defaultQuery>
629
+ </admin>
630
+
631
+ </config>