1 <?xml version="1.0" encoding="UTF-8" ?>
3 This is the Solr schema file for the Index Data Local Unified
4 Index. This file should be named "schema.xml" and should be in the
5 conf directory for the solr core
6 (i.e. /etc/masterkey/lui/solr-config/schema.xml by default).
7 For customization, see https://wiki.apache.org/solr/SchemaXml and the
8 Schema Design section of the Solr Reference Guide.
11 <schema name="Local Unified Index" version="1.2">
13 <!-- stock Solr field types from the dist schema.xml -->
14 <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
15 <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
16 <fieldtype name="binary" class="solr.BinaryField"/>
17 <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
18 <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
19 <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
20 <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
21 <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
22 <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
23 <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
24 <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
25 <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
26 <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
28 <fieldType name="facet" class="solr.TextField" sortMissingLast="true" omitNorms="true">
30 <tokenizer class="solr.KeywordTokenizerFactory"/>
31 <filter class="solr.LowerCaseFilterFactory" />
32 <filter class="solr.TrimFilterFactory" />
36 <fieldType name="random" class="solr.RandomSortField" indexed="true" />
38 <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
40 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
44 <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
45 <analyzer type="index">
46 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
47 <filter class="solr.StopFilterFactory"
51 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
52 <filter class="solr.LowerCaseFilterFactory"/>
53 <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
55 <analyzer type="query">
56 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
57 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
58 <filter class="solr.StopFilterFactory"
62 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
63 <filter class="solr.LowerCaseFilterFactory"/>
64 <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
68 <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
70 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
71 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
72 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
73 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
74 <filter class="solr.LowerCaseFilterFactory"/>
75 <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
76 <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
80 <fieldType name="textgen" class="solr.TextField" positionIncrementGap="100">
81 <analyzer type="index">
82 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
83 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
84 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
85 <filter class="solr.LowerCaseFilterFactory"/>
87 <analyzer type="query">
88 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
89 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
90 <filter class="solr.StopFilterFactory"
94 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
95 <filter class="solr.LowerCaseFilterFactory"/>
99 <fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100">
100 <analyzer type="index">
101 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
102 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
103 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
104 <filter class="solr.LowerCaseFilterFactory"/>
105 <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
106 maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
108 <analyzer type="query">
109 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
110 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
111 <filter class="solr.StopFilterFactory"
113 words="stopwords.txt"
115 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
116 <filter class="solr.LowerCaseFilterFactory"/>
120 <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
122 <tokenizer class="solr.KeywordTokenizerFactory"/>
123 <filter class="solr.LowerCaseFilterFactory" />
124 <filter class="solr.TrimFilterFactory" />
125 <filter class="solr.PatternReplaceFilterFactory"
126 pattern="([^a-z])" replacement="" replace="all"
131 <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
133 <tokenizer class="solr.StandardTokenizerFactory"/>
134 <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
138 <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField" >
140 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
141 <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>
145 <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
147 <tokenizer class="solr.KeywordTokenizerFactory"/>
148 <filter class="solr.LowerCaseFilterFactory" />
152 <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
154 <!-- custom field type to prevent accidentally indexing enormous
155 terms in the catchall text field -->
156 <fieldType name="text_trunc" class="solr.TextField" positionIncrementGap="100">
157 <analyzer type="index">
158 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
159 <filter class="solr.StopFilterFactory"
161 words="stopwords.txt"
163 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
164 <filter class="solr.LowerCaseFilterFactory"/>
165 <filter class="solr.SnowballPorterFilterFactory"
166 language="English" protected="protwords.txt"/>
167 <filter class="solr.LengthFilterFactory" min="1" max="255"/>
169 <analyzer type="query">
170 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
171 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
172 <filter class="solr.StopFilterFactory"
174 words="stopwords.txt"
176 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
177 <filter class="solr.LowerCaseFilterFactory"/>
178 <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
185 <field name="id" type="string" indexed="true" stored="true" required="true" />
186 <field name="_version_" type="long" indexed="true" stored="true"/>
188 <field name="transactionId" type="long" indexed="true" stored="false"/>
190 <field name="author" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
191 <field name="author_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
192 <field name="author-date" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
193 <field name="author-title" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
195 <field name="corporate-date" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
196 <field name="corporate-location" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
197 <field name="corporate-name" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
199 <field name="callnumber" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
200 <field name="citation" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
202 <field name="date" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
203 <field name="description" type="text_ws" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
205 <field name="edition" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
207 <field name="electronic-format-instruction" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
208 <field name="electronic-format-type" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
209 <field name="electronic-note" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
210 <field name="electronic-text" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
211 <field name="electronic-url" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
213 <field name="isbn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
214 <field name="issn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
215 <field name="lccn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
217 <field name="medium" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
218 <field name="medium_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
220 <field name="meeting-date" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
221 <field name="meeting-location" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
222 <field name="meeting-name" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
224 <field name="series-title" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
226 <field name="subject" type="text_ws" indexed="true" stored="true" multiValued="true" omitNorms="true" />
227 <field name="subject_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
228 <field name="subject-long" type="text_ws" indexed="true" stored="true" multiValued="true" omitNorms="true" />
230 <field name="system-control-nr" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
232 <field name="tech-rep-nr" type="text" indexed="true" multiValued="true" stored="true"/>
234 <field name="title" type="text" indexed="true" multiValued="true" stored="true"/>
235 <field name="title-complete" type="text" indexed="true" multiValued="true" stored="true"/>
236 <field name="title-dates" type="text" indexed="true" multiValued="true" stored="true"/>
237 <field name="title-medium" type="text" indexed="true" multiValued="true" stored="true"/>
238 <field name="title-number-section" type="text" indexed="true" multiValued="true" stored="true"/>
239 <field name="title-remainder" type="text" indexed="true" multiValued="true" stored="true"/>
240 <field name="title-responsibility" type="text" indexed="true" multiValued="true" stored="true"/>
241 <field name="title-uniform" type="text" indexed="true" multiValued="true" stored="true"/>
242 <field name="title-uniform-key" type="text" indexed="true" multiValued="true" stored="true"/>
243 <field name="title-uniform-media" type="text" indexed="true" multiValued="true" stored="true"/>
244 <field name="title-uniform-partname" type="text" indexed="true" multiValued="true" stored="true"/>
245 <field name="title-uniform-parts" type="text" indexed="true" multiValued="true" stored="true"/>
247 <field name="journal-title" type="text" indexed="true" multiValued="true" stored="true" />
248 <field name="journal-title_exact" type="string" indexed="true" multiValued="true" stored="false" docValues="true" />
250 <field name="physical-accomp" type="text" indexed="true" stored="true" multiValued="true" />
251 <field name="physical-dimensions" type="text" indexed="true" stored="true" multiValued="true" />
252 <field name="physical-extent" type="text" indexed="true" stored="true" multiValued="true" />
253 <field name="physical-format" type="text" indexed="true" stored="true" multiValued="true" />
254 <field name="physical-specified" type="text" indexed="true" stored="true" multiValued="true" />
255 <field name="physical-unitsize" type="text" indexed="true" stored="true" multiValued="true" />
256 <field name="physical-unittype" type="text" indexed="true" stored="true" multiValued="true" />
258 <field name="publication-date" type="text" indexed="true" stored="true" multiValued="true" />
259 <field name="publication-name" type="text" indexed="true" stored="true" multiValued="true" />
260 <field name="publication-place" type="text" indexed="true" stored="true" multiValued="true" />
262 <field name="harvest-timestamp" type="date" indexed="true" stored="true"/>
263 <field name="harvest-date" type="string" indexed="true" stored="true"/>
265 <!-- catchall fields, can be implemented via copyField further on in this schema -->
266 <field name="text" type="text_trunc" indexed="true" stored="false" multiValued="true"/>
267 <field name="text_rev" type="text_rev" indexed="true" stored="false" multiValued="true"/>
268 <field name="payloads" type="payloads" indexed="true" stored="true"/>
270 <!-- Dynamic field definitions -->
271 <dynamicField name="*_i" type="int" indexed="true" stored="true"/>
272 <dynamicField name="*_s" type="string" indexed="true" stored="true"/>
273 <dynamicField name="*_l" type="long" indexed="true" stored="true"/>
274 <dynamicField name="*_t" type="text" indexed="true" stored="true"/>
275 <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>
276 <dynamicField name="*_f" type="float" indexed="true" stored="true"/>
277 <dynamicField name="*_d" type="double" indexed="true" stored="true"/>
278 <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
279 <dynamicField name="*_ti" type="tint" indexed="true" stored="true"/>
280 <dynamicField name="*_tl" type="tlong" indexed="true" stored="true"/>
281 <dynamicField name="*_tf" type="tfloat" indexed="true" stored="true"/>
282 <dynamicField name="*_td" type="tdouble" indexed="true" stored="true"/>
283 <dynamicField name="*_tdt" type="tdate" indexed="true" stored="true"/>
284 <dynamicField name="ignored_*" type="ignored" multiValued="true"/>
285 <dynamicField name="attr_*" type="textgen" indexed="true" stored="true" multiValued="true"/>
286 <dynamicField name="random_*" type="random" />
287 <dynamicField name="*_binary" type="binary" indexed="false" stored="true" multiValued="true"/>
288 <dynamicField name="*_path" type="text" indexed="true" stored="true" multiValued="true"/>
290 <!-- catchall dynamic field -->
291 <dynamicField name="*" type="text" multiValued="true" />
294 <uniqueKey>id</uniqueKey>
296 <defaultSearchField>text</defaultSearchField>
298 <solrQueryParser defaultOperator="AND"/>
300 <!-- copyField commands -->
301 <copyField source="author" dest="author_exact"/>
302 <copyField source="subject" dest="subject_exact"/>
303 <copyField source="medium" dest="medium_exact"/>
304 <copyField source="journal-title" dest="journal-title_exact"/>
305 <!-- catchall to index all fields -->
306 <copyField source="*" dest="text"/>