Complete redo of Debian packaging
[lui-solr.git] / conf / solr-home / lui / conf / schema.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!--  
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.
9 -->
10
11 <schema name="Local Unified Index" version="1.6">
12
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"/>
27
28     <fieldType name="facet" class="solr.TextField" sortMissingLast="true" omitNorms="true">
29       <analyzer>
30         <tokenizer class="solr.KeywordTokenizerFactory"/>
31         <filter class="solr.LowerCaseFilterFactory" />
32         <filter class="solr.TrimFilterFactory" />
33       </analyzer>
34     </fieldType>
35
36     <fieldType name="random" class="solr.RandomSortField" indexed="true" />
37
38     <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
39       <analyzer>
40         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
41       </analyzer>
42     </fieldType>
43
44     <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
45       <analyzer type="index">
46         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
47         <filter class="solr.StopFilterFactory"
48                 ignoreCase="true"
49                 words="stopwords.txt"
50                 />
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"/>
54       </analyzer>
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"
59                 ignoreCase="true"
60                 words="stopwords.txt"
61                 />
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"/>
65       </analyzer>
66     </fieldType>
67
68     <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
69       <analyzer>
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"/>
77       </analyzer>
78     </fieldType>
79
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"/>
86       </analyzer>
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"
91                 ignoreCase="true"
92                 words="stopwords.txt"
93                 />
94         <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
95         <filter class="solr.LowerCaseFilterFactory"/>
96       </analyzer>
97     </fieldType>
98
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"/>
107       </analyzer>
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"
112                 ignoreCase="true"
113                 words="stopwords.txt"
114                 />
115         <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
116         <filter class="solr.LowerCaseFilterFactory"/>
117       </analyzer>
118     </fieldType>
119
120     <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
121       <analyzer>
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"
127         />
128       </analyzer>
129     </fieldType>
130     
131     <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
132       <analyzer>
133         <tokenizer class="solr.StandardTokenizerFactory"/>
134         <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
135       </analyzer>
136     </fieldtype>
137
138     <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField" >
139       <analyzer>
140         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
141         <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>
142       </analyzer>
143     </fieldtype>
144
145     <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
146       <analyzer>
147         <tokenizer class="solr.KeywordTokenizerFactory"/>
148         <filter class="solr.LowerCaseFilterFactory" />
149       </analyzer>
150     </fieldType>
151
152     <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" /> 
153
154    <!-- defined fields in the lui-solr schema -->
155
156    <field name="id" type="string" indexed="true" stored="true" required="true" /> 
157    <field name="_version_" type="long" indexed="true" stored="true"/>
158
159    <field name="transactionId" type="long" indexed="true" stored="false"/>
160
161    <field name="author"       type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
162    <field name="author_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
163    <field name="author-date"  type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
164    <field name="author-title" type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
165
166    <field name="corporate-date"     type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
167    <field name="corporate-location" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
168    <field name="corporate-name"     type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
169
170    <field name="callnumber" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
171    <field name="citation"   type="text" indexed="true" stored="true" multiValued="true"  omitNorms="true"/>
172
173    <field name="date"        type="text"    indexed="true" stored="true" multiValued="true" omitNorms="true"/>
174    <field name="description" type="text_ws" indexed="true" stored="true" multiValued="true"  omitNorms="true"/>
175
176    <field name="edition" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
177
178    <field name="electronic-format-instruction" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
179    <field name="electronic-format-type"        type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
180    <field name="electronic-note"               type="text" indexed="true" stored="true" multiValued="true"  omitNorms="true"/>
181    <field name="electronic-text"               type="text" indexed="true" stored="true" multiValued="true"  omitNorms="true"/>
182    <field name="electronic-url"                type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
183
184    <field name="isbn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
185    <field name="issn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
186    <field name="lccn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
187
188    <field name="medium"       type="text"  indexed="true" stored="true"   multiValued="true" omitNorms="true"/>
189    <field name="medium_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
190
191    <field name="meeting-date"     type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
192    <field name="meeting-location" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
193    <field name="meeting-name"     type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
194
195    <field name="series-title" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
196
197    <field name="subject"       type="text_ws" indexed="true" stored="true"  multiValued="true" omitNorms="true" />
198    <field name="subject_exact" type="string"  indexed="true" stored="false" multiValued="true" omitNorms="true" docValues="true" />
199    <field name="subject-long"  type="text_ws" indexed="true" stored="true"  multiValued="true" omitNorms="true" />
200
201    <field name="system-control-nr" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
202
203    <field name="tech-rep-nr" type="text" indexed="true" multiValued="true" stored="true"/>
204
205    <field name="title"                  type="text"   indexed="true" multiValued="true" stored="true"/>
206    <field name="title-complete"         type="text"   indexed="true" multiValued="true" stored="true"/>
207    <field name="title-dates"            type="text"   indexed="true" multiValued="true" stored="true"/>
208    <field name="title-medium"           type="text"   indexed="true" multiValued="true" stored="true"/>
209    <field name="title-number-section"   type="text"   indexed="true" multiValued="true" stored="true"/>
210    <field name="title-remainder"        type="text"   indexed="true" multiValued="true" stored="true"/>
211    <field name="title-responsibility"   type="text"   indexed="true" multiValued="true" stored="true"/>
212    <field name="title-uniform"          type="text"   indexed="true" multiValued="true" stored="true"/>
213    <field name="title-uniform-key"      type="text"   indexed="true" multiValued="true" stored="true"/>
214    <field name="title-uniform-media"    type="text"   indexed="true" multiValued="true" stored="true"/>
215    <field name="title-uniform-partname" type="text"   indexed="true" multiValued="true" stored="true"/>
216    <field name="title-uniform-parts"    type="text"   indexed="true" multiValued="true" stored="true"/>
217
218    <field name="journal-title"          type="text" indexed="true" multiValued="true"  stored="true" />
219    <field name="journal-title_exact"    type="string" indexed="true" multiValued="true"  stored="false" docValues="true" />
220
221    <field name="physical-accomp"     type="text" indexed="true" stored="true" multiValued="true" />
222    <field name="physical-dimensions" type="text" indexed="true" stored="true" multiValued="true" />
223    <field name="physical-extent"     type="text" indexed="true" stored="true" multiValued="true" />
224    <field name="physical-format"     type="text" indexed="true" stored="true" multiValued="true" />
225    <field name="physical-specified"  type="text" indexed="true" stored="true" multiValued="true" />
226    <field name="physical-unitsize"   type="text" indexed="true" stored="true" multiValued="true" />
227    <field name="physical-unittype"   type="text" indexed="true" stored="true" multiValued="true" />
228
229    <field name="publication-date"  type="text" indexed="true" stored="true" multiValued="true" />
230    <field name="publication-name"  type="text" indexed="true" stored="true" multiValued="true" />
231    <field name="publication-place" type="text" indexed="true" stored="true" multiValued="true" />
232
233    <field name="harvest-timestamp" type="date"   indexed="true" stored="true"/>
234    <field name="harvest-date"      type="string" indexed="true" stored="true"/>
235
236    <!-- default search field, created by the clone-fields update
237         processor chain in solrconfig.xml -->
238    <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
239
240    <!-- Dynamic field definitions -->
241    <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
242    <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
243    <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
244    <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
245    <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
246    <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
247    <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
248    <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>
249    <dynamicField name="*_ti" type="tint"    indexed="true"  stored="true"/>
250    <dynamicField name="*_tl" type="tlong"   indexed="true"  stored="true"/>
251    <dynamicField name="*_tf" type="tfloat"  indexed="true"  stored="true"/>
252    <dynamicField name="*_td" type="tdouble" indexed="true"  stored="true"/>
253    <dynamicField name="*_tdt" type="tdate"  indexed="true"  stored="true"/>
254    <dynamicField name="ignored_*" type="ignored" multiValued="true"/>
255    <dynamicField name="attr_*" type="textgen" indexed="true" stored="true" multiValued="true"/>
256    <dynamicField name="random_*" type="random" />
257    <dynamicField name="*_binary" type="binary" indexed="false" stored="true" multiValued="true"/>
258    <dynamicField name="*_path" type="text" indexed="true" stored="true" multiValued="true"/>
259
260    <!-- catchall dynamic field -->
261    <dynamicField name="*" type="text" multiValued="true"/>
262
263  <uniqueKey>id</uniqueKey>
264
265  <!-- copyField commands -->
266  <copyField source="author"  dest="author_exact"/>
267  <copyField source="subject" dest="subject_exact"/>
268  <copyField source="medium"  dest="medium_exact"/>
269  <copyField source="journal-title"   dest="journal-title_exact"/>
270
271 </schema>