blacklight 8.12.2 → 8.13.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.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/matrix.json +43 -26
  3. data/.github/workflows/test.yml +1 -2
  4. data/.rubocop.yml +151 -8
  5. data/.rubocop_todo.yml +65 -53
  6. data/VERSION +1 -1
  7. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  8. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  9. data/app/components/blacklight/advanced_search_form_component.rb +2 -2
  10. data/app/components/blacklight/constraints_component.rb +2 -2
  11. data/app/components/blacklight/document/bookmark_component.rb +2 -2
  12. data/app/components/blacklight/document/more_like_this_component.rb +2 -2
  13. data/app/components/blacklight/icons/legacy_icon_component.rb +1 -1
  14. data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +2 -2
  15. data/app/controllers/concerns/blacklight/bookmarks.rb +5 -5
  16. data/app/controllers/concerns/blacklight/search_context.rb +1 -1
  17. data/app/controllers/concerns/blacklight/search_history.rb +1 -1
  18. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -2
  19. data/app/helpers/blacklight/icon_helper_behavior.rb +3 -3
  20. data/app/helpers/blacklight/layout_helper_behavior.rb +2 -2
  21. data/app/models/blacklight/icon.rb +3 -2
  22. data/app/models/concerns/blacklight/user.rb +1 -0
  23. data/app/presenters/blacklight/facet_field_presenter.rb +2 -2
  24. data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
  25. data/app/presenters/blacklight/rendering/join.rb +2 -2
  26. data/app/presenters/blacklight/rendering/microdata.rb +1 -0
  27. data/app/values/blacklight/types.rb +2 -2
  28. data/app/views/catalog/_email_form.html.erb +2 -2
  29. data/app/views/catalog/_sms_form.html.erb +2 -2
  30. data/blacklight.gemspec +1 -1
  31. data/lib/blacklight/abstract_repository.rb +2 -2
  32. data/lib/blacklight/component.rb +2 -0
  33. data/lib/blacklight/configuration/context.rb +3 -3
  34. data/lib/blacklight/configuration/display_field.rb +1 -1
  35. data/lib/blacklight/configuration/field.rb +10 -10
  36. data/lib/blacklight/configuration/fields.rb +3 -3
  37. data/lib/blacklight/configuration/sort_field.rb +2 -2
  38. data/lib/blacklight/configuration/view_config.rb +2 -2
  39. data/lib/blacklight/configuration.rb +1 -1
  40. data/lib/blacklight/nested_open_struct_with_hash_access.rb +1 -1
  41. data/lib/blacklight/open_struct_with_hash_access.rb +5 -5
  42. data/lib/blacklight/parameters.rb +1 -1
  43. data/lib/blacklight/search_builder.rb +4 -4
  44. data/lib/blacklight/search_state/filter_field.rb +2 -2
  45. data/lib/blacklight/search_state/pivot_filter_field.rb +1 -1
  46. data/lib/blacklight/solr/request.rb +1 -1
  47. data/lib/blacklight/solr/response/facets.rb +2 -2
  48. data/lib/blacklight/solr/response/group_response.rb +2 -2
  49. data/lib/blacklight/solr/response.rb +4 -1
  50. data/lib/blacklight.rb +1 -1
  51. data/lib/generators/blacklight/assets/importmap_generator.rb +28 -3
  52. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  53. data/lib/generators/blacklight/templates/solr/conf/schema.xml +264 -178
  54. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +6 -18
  55. data/package.json +1 -1
  56. data/spec/components/blacklight/document/action_component_spec.rb +1 -1
  57. data/spec/components/blacklight/document/group_component_spec.rb +1 -1
  58. data/spec/components/blacklight/document_component_spec.rb +9 -9
  59. data/spec/components/blacklight/facet_component_spec.rb +2 -2
  60. data/spec/components/blacklight/facet_field_list_component_spec.rb +1 -1
  61. data/spec/controllers/catalog_controller_spec.rb +2 -2
  62. data/spec/features/advanced_search_spec.rb +12 -12
  63. data/spec/features/bookmarks_spec.rb +12 -12
  64. data/spec/features/did_you_mean_spec.rb +17 -17
  65. data/spec/features/facet_missing_spec.rb +3 -3
  66. data/spec/features/modal_spec.rb +1 -1
  67. data/spec/features/record_view_spec.rb +14 -14
  68. data/spec/features/search_context_spec.rb +7 -7
  69. data/spec/features/search_filters_spec.rb +12 -12
  70. data/spec/features/search_formats_spec.rb +2 -2
  71. data/spec/features/search_history_spec.rb +11 -11
  72. data/spec/features/search_pagination_spec.rb +9 -9
  73. data/spec/features/search_results_spec.rb +3 -3
  74. data/spec/features/search_sort_spec.rb +4 -4
  75. data/spec/features/search_spec.rb +15 -15
  76. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +14 -14
  77. data/spec/helpers/blacklight_helper_spec.rb +6 -0
  78. data/spec/helpers/catalog_helper_spec.rb +6 -6
  79. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +7 -0
  80. data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +1 -1
  81. data/spec/models/record_mailer_spec.rb +5 -5
  82. data/spec/models/solr_document_spec.rb +5 -1
  83. data/spec/presenters/blacklight/index_presenter_spec.rb +1 -0
  84. data/spec/presenters/blacklight/rendering/pipeline_spec.rb +1 -0
  85. data/spec/presenters/blacklight/show_presenter_spec.rb +1 -0
  86. data/spec/presenters/blacklight/thumbnail_presenter_spec.rb +1 -0
  87. data/spec/views/catalog/_document.html.erb_spec.rb +4 -4
  88. data/spec/views/catalog/_search_header.erb_spec.rb +2 -2
  89. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +5 -5
  90. data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
  91. data/spec/views/catalog/index.html.erb_spec.rb +2 -2
  92. data/spec/views/catalog/show.html.erb_spec.rb +3 -3
  93. metadata +7 -10
@@ -1,5 +1,5 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <schema name="Hydra" version="1.5">
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <schema name="Blacklight-default" version="1.6">
3
3
  <!-- NOTE: various comments and unused configuration possibilities have been purged
4
4
  from this file. Please refer to http://wiki.apache.org/solr/SchemaXml,
5
5
  as well as the default schema file included with Solr -->
@@ -7,183 +7,255 @@
7
7
  <uniqueKey>id</uniqueKey>
8
8
 
9
9
  <fields>
10
- <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
10
+ <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true" />
11
11
  <field name="format" type="string" stored="true" indexed="true" multiValued="true" />
12
- <field name="_version_" type="long" indexed="true" stored="true"/>
13
- <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
12
+ <field name="_version_" type="long" indexed="true" stored="true" />
13
+ <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false" />
14
14
 
15
- <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
16
- <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
15
+ <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false" />
16
+ <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false" />
17
17
  <!-- NOTE: not all possible Solr field types are represented in the dynamic fields -->
18
18
 
19
19
  <!-- text (_t...) -->
20
20
 
21
- <dynamicField name="*_ti" type="text" stored="false" indexed="true" multiValued="false"/>
22
- <dynamicField name="*_tim" type="text" stored="false" indexed="true" multiValued="true"/>
23
-
24
- <dynamicField name="*_ts" type="text" stored="true" indexed="false" multiValued="false"/>
25
- <dynamicField name="*_tsm" type="text" stored="true" indexed="false" multiValued="true"/>
26
- <dynamicField name="*_tsi" type="text" stored="true" indexed="true" multiValued="false"/>
27
- <dynamicField name="*_tsim" type="text" stored="true" indexed="true" multiValued="true"/>
28
-
29
- <dynamicField name="*_tiv" type="text" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
30
- <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
31
-
32
- <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
33
- <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
21
+ <dynamicField name="*_ti" type="text" stored="false" indexed="true" multiValued="false" />
22
+ <dynamicField name="*_tim" type="text" stored="false" indexed="true" multiValued="true" />
23
+
24
+ <dynamicField name="*_ts" type="text" stored="true" indexed="false" multiValued="false" />
25
+ <dynamicField name="*_tsm" type="text" stored="true" indexed="false" multiValued="true" />
26
+ <dynamicField name="*_tsi" type="text" stored="true" indexed="true" multiValued="false" />
27
+ <dynamicField name="*_tsim" type="text" stored="true" indexed="true" multiValued="true" />
28
+
29
+ <dynamicField
30
+ name="*_tiv"
31
+ type="text"
32
+ stored="false"
33
+ indexed="true"
34
+ multiValued="false"
35
+ termVectors="true"
36
+ termPositions="true"
37
+ termOffsets="true"
38
+ />
39
+ <dynamicField
40
+ name="*_timv"
41
+ type="text"
42
+ stored="false"
43
+ indexed="true"
44
+ multiValued="true"
45
+ termVectors="true"
46
+ termPositions="true"
47
+ termOffsets="true"
48
+ />
49
+
50
+ <dynamicField
51
+ name="*_tsiv"
52
+ type="text"
53
+ stored="true"
54
+ indexed="true"
55
+ multiValued="false"
56
+ termVectors="true"
57
+ termPositions="true"
58
+ termOffsets="true"
59
+ />
60
+ <dynamicField
61
+ name="*_tsimv"
62
+ type="text"
63
+ stored="true"
64
+ indexed="true"
65
+ multiValued="true"
66
+ termVectors="true"
67
+ termPositions="true"
68
+ termOffsets="true"
69
+ />
34
70
 
35
71
  <!-- English text (_te...) -->
36
72
 
37
- <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
38
- <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
39
-
40
- <dynamicField name="*_tes" type="text_en" stored="true" indexed="false" multiValued="false"/>
41
- <dynamicField name="*_tesm" type="text_en" stored="true" indexed="false" multiValued="true"/>
42
- <dynamicField name="*_tesi" type="text_en" stored="true" indexed="true" multiValued="false"/>
43
- <dynamicField name="*_tesim" type="text_en" stored="true" indexed="true" multiValued="true"/>
44
-
45
- <dynamicField name="*_teiv" type="text_en" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
46
- <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
47
-
48
- <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
49
- <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
73
+ <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false" />
74
+ <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true" />
75
+
76
+ <dynamicField name="*_tes" type="text_en" stored="true" indexed="false" multiValued="false" />
77
+ <dynamicField name="*_tesm" type="text_en" stored="true" indexed="false" multiValued="true" />
78
+ <dynamicField name="*_tesi" type="text_en" stored="true" indexed="true" multiValued="false" />
79
+ <dynamicField name="*_tesim" type="text_en" stored="true" indexed="true" multiValued="true" />
80
+
81
+ <dynamicField
82
+ name="*_teiv"
83
+ type="text_en"
84
+ stored="false"
85
+ indexed="true"
86
+ multiValued="false"
87
+ termVectors="true"
88
+ termPositions="true"
89
+ termOffsets="true"
90
+ />
91
+ <dynamicField
92
+ name="*_teimv"
93
+ type="text_en"
94
+ stored="false"
95
+ indexed="true"
96
+ multiValued="true"
97
+ termVectors="true"
98
+ termPositions="true"
99
+ termOffsets="true"
100
+ />
101
+
102
+ <dynamicField
103
+ name="*_tesiv"
104
+ type="text_en"
105
+ stored="true"
106
+ indexed="true"
107
+ multiValued="false"
108
+ termVectors="true"
109
+ termPositions="true"
110
+ termOffsets="true"
111
+ />
112
+ <dynamicField
113
+ name="*_tesimv"
114
+ type="text_en"
115
+ stored="true"
116
+ indexed="true"
117
+ multiValued="true"
118
+ termVectors="true"
119
+ termPositions="true"
120
+ termOffsets="true"
121
+ />
50
122
 
51
123
  <!-- string (_s...) -->
52
124
 
53
- <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
54
- <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
125
+ <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false" />
126
+ <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true" />
55
127
 
56
- <dynamicField name="*_ss" type="string" stored="true" indexed="false" multiValued="false"/>
57
- <dynamicField name="*_ssm" type="string" stored="true" indexed="false" multiValued="true"/>
58
- <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
59
- <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
128
+ <dynamicField name="*_ss" type="string" stored="true" indexed="false" multiValued="false" />
129
+ <dynamicField name="*_ssm" type="string" stored="true" indexed="false" multiValued="true" />
130
+ <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false" />
131
+ <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true" />
60
132
 
61
- <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
133
+ <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false" />
62
134
 
63
135
 
64
136
  <!-- integer (_i...) -->
65
137
 
66
- <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
67
- <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
138
+ <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false" />
139
+ <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true" />
68
140
 
69
- <dynamicField name="*_is" type="int" stored="true" indexed="false" multiValued="false"/>
70
- <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
71
- <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
72
- <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
141
+ <dynamicField name="*_is" type="int" stored="true" indexed="false" multiValued="false" />
142
+ <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true" />
143
+ <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false" />
144
+ <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true" />
73
145
 
74
146
  <!-- IntegerPointField (_it...) (for faster range queries) -->
75
147
 
76
- <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
77
- <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
148
+ <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false" />
149
+ <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true" />
78
150
 
79
- <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/>
80
- <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
81
- <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
82
- <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
151
+ <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false" />
152
+ <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true" />
153
+ <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false" />
154
+ <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true" />
83
155
 
84
156
  <!-- date (_dt...) -->
85
157
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
86
158
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
87
159
 
88
- <dynamicField name="*_dti" type="date" stored="false" indexed="true" multiValued="false"/>
89
- <dynamicField name="*_dtim" type="date" stored="false" indexed="true" multiValued="true"/>
160
+ <dynamicField name="*_dti" type="date" stored="false" indexed="true" multiValued="false" />
161
+ <dynamicField name="*_dtim" type="date" stored="false" indexed="true" multiValued="true" />
90
162
 
91
- <dynamicField name="*_dts" type="date" stored="true" indexed="false" multiValued="false"/>
92
- <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
93
- <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
94
- <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
163
+ <dynamicField name="*_dts" type="date" stored="true" indexed="false" multiValued="false" />
164
+ <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true" />
165
+ <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false" />
166
+ <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true" />
95
167
 
96
168
  <!-- DatePointField (_dtt...) (for faster range queries) -->
97
169
 
98
- <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
99
- <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
170
+ <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false" />
171
+ <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true" />
100
172
 
101
- <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/>
102
- <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
103
- <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
104
- <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
173
+ <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false" />
174
+ <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true" />
175
+ <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false" />
176
+ <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true" />
105
177
 
106
178
  <!-- long (_l...) -->
107
179
 
108
- <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
109
- <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
180
+ <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false" />
181
+ <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true" />
110
182
 
111
- <dynamicField name="*_ls" type="long" stored="true" indexed="false" multiValued="false"/>
112
- <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
113
- <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
114
- <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
183
+ <dynamicField name="*_ls" type="long" stored="true" indexed="false" multiValued="false" />
184
+ <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true" />
185
+ <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false" />
186
+ <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true" />
115
187
 
116
188
  <!-- LongPointField (_lt...) (for faster range queries) -->
117
189
 
118
- <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
119
- <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
190
+ <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false" />
191
+ <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true" />
120
192
 
121
- <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/>
122
- <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
123
- <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
124
- <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
193
+ <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false" />
194
+ <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true" />
195
+ <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false" />
196
+ <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true" />
125
197
 
126
198
  <!-- double (_db...) -->
127
199
 
128
- <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
129
- <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
200
+ <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false" />
201
+ <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true" />
130
202
 
131
- <dynamicField name="*_dbs" type="double" stored="true" indexed="false" multiValued="false"/>
132
- <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
133
- <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
134
- <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
203
+ <dynamicField name="*_dbs" type="double" stored="true" indexed="false" multiValued="false" />
204
+ <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true" />
205
+ <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false" />
206
+ <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true" />
135
207
 
136
208
  <!-- DoublePointField (_dbt...) (for faster range queries) -->
137
209
 
138
- <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
139
- <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
210
+ <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false" />
211
+ <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true" />
140
212
 
141
- <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/>
142
- <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
143
- <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
144
- <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
213
+ <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false" />
214
+ <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true" />
215
+ <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false" />
216
+ <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true" />
145
217
 
146
218
  <!-- float (_f...) -->
147
219
 
148
- <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
149
- <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
220
+ <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false" />
221
+ <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true" />
150
222
 
151
- <dynamicField name="*_fs" type="float" stored="true" indexed="false" multiValued="false"/>
152
- <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
153
- <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
154
- <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
223
+ <dynamicField name="*_fs" type="float" stored="true" indexed="false" multiValued="false" />
224
+ <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true" />
225
+ <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false" />
226
+ <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true" />
155
227
 
156
228
  <!-- FloatPointField (_ft...) (for faster range queries) -->
157
229
 
158
- <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
159
- <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
230
+ <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false" />
231
+ <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true" />
160
232
 
161
- <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/>
162
- <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
163
- <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
164
- <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
233
+ <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false" />
234
+ <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true" />
235
+ <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false" />
236
+ <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true" />
165
237
 
166
238
  <!-- boolean (_b...) -->
167
239
 
168
- <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
240
+ <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false" />
169
241
 
170
- <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
171
- <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
242
+ <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false" />
243
+ <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false" />
172
244
 
173
245
  <!-- Type used to index the lat and lon components for the "location" FieldType -->
174
246
 
175
- <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
247
+ <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
176
248
 
177
249
 
178
250
  <!-- location (_ll...) -->
179
251
 
180
- <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/>
181
- <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/>
252
+ <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false" />
253
+ <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true" />
182
254
 
183
- <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/>
184
- <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/>
185
- <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/>
186
- <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/>
255
+ <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false" />
256
+ <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true" />
257
+ <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false" />
258
+ <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true" />
187
259
 
188
260
  <dynamicField name="*_srpt" type="location_rpt" stored="true" indexed="true" multiValued="true" />
189
261
  <dynamicField name="*_bbox" type="bbox" stored="true" indexed="true" />
@@ -194,7 +266,16 @@
194
266
  <dynamicField name="*suggest" type="textSuggest" indexed="true" stored="false" multiValued="true" />
195
267
 
196
268
  <!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
197
- <field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
269
+ <field
270
+ name="all_text_timv"
271
+ type="text"
272
+ stored="false"
273
+ indexed="true"
274
+ multiValued="true"
275
+ termVectors="true"
276
+ termPositions="true"
277
+ termOffsets="true"
278
+ />
198
279
 
199
280
 
200
281
  </fields>
@@ -205,49 +286,49 @@
205
286
  destination field is to use the dynamic field syntax.
206
287
  copyField also supports a maxChars to copy setting. -->
207
288
 
208
- <copyField source="*_tsim" dest="all_text_timv" maxChars="3000"/>
209
- <copyField source="*_tesim" dest="all_text_timv" maxChars="3000"/>
210
- <copyField source="*_ssim" dest="all_text_timv" maxChars="3000"/>
211
- <copyField source="*_si" dest="all_text_timv" maxChars="3000"/>
289
+ <copyField source="*_tsim" dest="all_text_timv" maxChars="3000" />
290
+ <copyField source="*_tesim" dest="all_text_timv" maxChars="3000" />
291
+ <copyField source="*_ssim" dest="all_text_timv" maxChars="3000" />
292
+ <copyField source="*_si" dest="all_text_timv" maxChars="3000" />
212
293
 
213
- <copyField source="*_tsim" dest="suggest"/>
214
- <copyField source="*_tesim" dest="suggest"/>
215
- <copyField source="*_ssim" dest="suggest"/>
216
- <copyField source="*_si" dest="suggest"/>
294
+ <copyField source="*_tsim" dest="suggest" />
295
+ <copyField source="*_tesim" dest="suggest" />
296
+ <copyField source="*_ssim" dest="suggest" />
297
+ <copyField source="*_si" dest="suggest" />
217
298
 
218
299
  <!-- TODO: Look into if these are actually being used. -->
219
- <copyField source="*_tsim" dest="spell"/>
220
- <copyField source="*_tesim" dest="spell"/>
221
- <copyField source="*_ssim" dest="spell"/>
222
- <copyField source="*_si" dest="spell"/>
300
+ <copyField source="*_tsim" dest="spell" />
301
+ <copyField source="*_tesim" dest="spell" />
302
+ <copyField source="*_ssim" dest="spell" />
303
+ <copyField source="*_si" dest="spell" />
223
304
 
224
- <copyField source="author_tsim" dest="author_spell"/>
225
- <copyField source="subject_ssim" dest="subject_spell"/>
226
- <copyField source="title_tsim" dest="title_spell"/>
305
+ <copyField source="author_tsim" dest="author_spell" />
306
+ <copyField source="subject_ssim" dest="subject_spell" />
307
+ <copyField source="title_tsim" dest="title_spell" />
227
308
 
228
309
  <types>
229
310
  <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
230
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
231
- <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
311
+ <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" />
312
+ <fieldType name="rand" class="solr.RandomSortField" />
232
313
 
233
314
  <!-- Default numeric field types. -->
234
- <fieldType name="int" class="solr.IntPointField" docValues="true"/>
235
- <fieldType name="float" class="solr.FloatPointField" docValues="true"/>
236
- <fieldType name="long" class="solr.LongPointField" docValues="true"/>
237
- <fieldType name="double" class="solr.DoublePointField" docValues="true"/>
315
+ <fieldType name="int" class="solr.IntPointField" docValues="true" />
316
+ <fieldType name="float" class="solr.FloatPointField" docValues="true" />
317
+ <fieldType name="long" class="solr.LongPointField" docValues="true" />
318
+ <fieldType name="double" class="solr.DoublePointField" docValues="true" />
238
319
 
239
320
  <!-- PointField numeric field types for faster range queries -->
240
- <fieldType name="tint" class="solr.IntPointField" docValues="true"/>
241
- <fieldType name="tfloat" class="solr.FloatPointField" docValues="true"/>
242
- <fieldType name="tlong" class="solr.LongPointField" docValues="true"/>
243
- <fieldType name="tdouble" class="solr.DoublePointField" docValues="true"/>
321
+ <fieldType name="tint" class="solr.IntPointField" docValues="true" />
322
+ <fieldType name="tfloat" class="solr.FloatPointField" docValues="true" />
323
+ <fieldType name="tlong" class="solr.LongPointField" docValues="true" />
324
+ <fieldType name="tdouble" class="solr.DoublePointField" docValues="true" />
244
325
 
245
326
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
246
327
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
247
328
  -->
248
- <fieldType name="date" class="solr.DatePointField" docValues="true"/>
329
+ <fieldType name="date" class="solr.DatePointField" docValues="true" />
249
330
  <!-- A PointField based date field for faster date range queries and date faceting. -->
250
- <fieldType name="tdate" class="solr.DatePointField" docValues="true"/>
331
+ <fieldType name="tdate" class="solr.DatePointField" docValues="true" />
251
332
 
252
333
 
253
334
  <!-- This point type indexes the coordinates as separate fields (subFields)
@@ -261,44 +342,49 @@
261
342
  The subFields are an implementation detail of the fieldType, and end
262
343
  users normally should not need to know about them.
263
344
  -->
264
- <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
345
+ <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d" />
265
346
 
266
347
  <!-- A specialized field for geospatial search filters and distance sorting. -->
267
- <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>
348
+ <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true" />
268
349
 
269
350
  <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
270
351
  For more information about this and other Spatial fields new to Solr 4, see:
271
352
  http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
272
353
  -->
273
- <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
274
- geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/>
354
+ <fieldType
355
+ name="location_rpt"
356
+ class="solr.SpatialRecursivePrefixTreeFieldType"
357
+ geo="true"
358
+ distErrPct="0.025"
359
+ maxDistErr="0.001"
360
+ distanceUnits="kilometers"
361
+ />
275
362
 
276
363
  <field name="bbox" type="bbox" />
277
- <fieldType name="bbox" class="solr.BBoxField"
278
- geo="true" distanceUnits="kilometers" numberType="_bbox_coord" storeSubFields="false"/>
279
- <fieldType name="_bbox_coord" class="solr.DoublePointField" docValues="true" stored="false"/>
364
+ <fieldType name="bbox" class="solr.BBoxField" geo="true" distanceUnits="kilometers" numberType="_bbox_coord" storeSubFields="false" />
365
+ <fieldType name="_bbox_coord" class="solr.DoublePointField" docValues="true" stored="false" />
280
366
 
281
- <fieldType name="text" class="solr.TextField" omitNorms="false">
367
+ <fieldType name="text" class="solr.TextField">
282
368
  <analyzer>
283
- <tokenizer class="solr.ICUTokenizerFactory"/>
284
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
285
- <filter class="solr.TrimFilterFactory"/>
369
+ <tokenizer class="solr.ICUTokenizerFactory" />
370
+ <filter class="solr.ICUFoldingFilterFactory" /> <!-- NFKC, case folding, diacritics removed -->
371
+ <filter class="solr.TrimFilterFactory" />
286
372
  </analyzer>
287
373
  </fieldType>
288
374
 
289
375
  <!-- A text field that only splits on whitespace for exact matching of words -->
290
376
  <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
291
377
  <analyzer>
292
- <tokenizer class="solr.WhitespaceTokenizerFactory"/>
293
- <filter class="solr.TrimFilterFactory"/>
378
+ <tokenizer class="solr.WhitespaceTokenizerFactory" />
379
+ <filter class="solr.TrimFilterFactory" />
294
380
  </analyzer>
295
381
  </fieldType>
296
382
 
297
383
  <!-- single token analyzed text, for sorting. Punctuation is significant. -->
298
- <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
384
+ <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true">
299
385
  <analyzer>
300
386
  <tokenizer class="solr.KeywordTokenizerFactory" />
301
- <filter class="solr.ICUFoldingFilterFactory"/>
387
+ <filter class="solr.ICUFoldingFilterFactory" />
302
388
  <filter class="solr.TrimFilterFactory" />
303
389
  </analyzer>
304
390
  </fieldtype>
@@ -306,60 +392,60 @@
306
392
  <!-- A text field with defaults appropriate for English -->
307
393
  <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
308
394
  <analyzer>
309
- <tokenizer class="solr.ICUTokenizerFactory"/>
310
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
311
- <filter class="solr.EnglishPossessiveFilterFactory"/>
395
+ <tokenizer class="solr.ICUTokenizerFactory" />
396
+ <filter class="solr.ICUFoldingFilterFactory" /> <!-- NFKC, case folding, diacritics removed -->
397
+ <filter class="solr.EnglishPossessiveFilterFactory" />
312
398
  <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
313
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
399
+ <filter class="solr.EnglishMinimalStemFilterFactory" />
314
400
  <!--
315
401
  <filter class="solr.PorterStemFilterFactory"/>
316
402
  -->
317
- <filter class="solr.TrimFilterFactory"/>
403
+ <filter class="solr.TrimFilterFactory" />
318
404
  </analyzer>
319
405
  </fieldType>
320
406
 
321
407
  <!-- A text field with defaults appropriate for English an NGrams -->
322
408
  <fieldType name="text_en_ng" class="solr.TextField" positionIncrementGap="100">
323
409
  <analyzer type="index">
324
- <tokenizer class="solr.ICUTokenizerFactory"/>
325
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
326
- <filter class="solr.EnglishPossessiveFilterFactory"/>
410
+ <tokenizer class="solr.ICUTokenizerFactory" />
411
+ <filter class="solr.ICUFoldingFilterFactory" /> <!-- NFKC, case folding, diacritics removed -->
412
+ <filter class="solr.EnglishPossessiveFilterFactory" />
327
413
  <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
328
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
329
- <filter class="solr.TrimFilterFactory"/>
414
+ <filter class="solr.EnglishMinimalStemFilterFactory" />
415
+ <filter class="solr.TrimFilterFactory" />
330
416
  <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" />
331
417
  </analyzer>
332
418
 
333
419
  <analyzer type="index">
334
- <tokenizer class="solr.ICUTokenizerFactory"/>
335
- <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed -->
336
- <filter class="solr.EnglishPossessiveFilterFactory"/>
420
+ <tokenizer class="solr.ICUTokenizerFactory" />
421
+ <filter class="solr.ICUFoldingFilterFactory" /> <!-- NFKC, case folding, diacritics removed -->
422
+ <filter class="solr.EnglishPossessiveFilterFactory" />
337
423
  <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: -->
338
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
339
- <filter class="solr.TrimFilterFactory"/>
424
+ <filter class="solr.EnglishMinimalStemFilterFactory" />
425
+ <filter class="solr.TrimFilterFactory" />
340
426
  </analyzer>
341
427
  </fieldType>
342
428
 
343
429
  <fieldType name="pid_text" class="solr.TextField" positionIncrementGap="100">
344
430
  <analyzer>
345
- <tokenizer class="solr.KeywordTokenizerFactory"/>
431
+ <tokenizer class="solr.KeywordTokenizerFactory" />
346
432
  </analyzer>
347
433
  </fieldType>
348
434
 
349
- <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
435
+ <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100">
350
436
  <analyzer>
351
- <tokenizer class="solr.StandardTokenizerFactory"/>
352
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
353
- <filter class="solr.LowerCaseFilterFactory"/>
354
- <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
437
+ <tokenizer class="solr.StandardTokenizerFactory" />
438
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
439
+ <filter class="solr.LowerCaseFilterFactory" />
440
+ <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
355
441
  </analyzer>
356
442
  </fieldType>
357
443
 
358
- <fieldType name="textSuggest" class="solr.TextField" positionIncrementGap="100">
444
+ <fieldType name="textSuggest" class="solr.TextField" positionIncrementGap="100">
359
445
  <analyzer>
360
- <tokenizer class="solr.KeywordTokenizerFactory"/>
361
- <filter class="solr.LowerCaseFilterFactory"/>
362
- <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
446
+ <tokenizer class="solr.KeywordTokenizerFactory" />
447
+ <filter class="solr.LowerCaseFilterFactory" />
448
+ <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
363
449
  </analyzer>
364
450
  </fieldType>
365
451