~slub.team/goobi-indexserver/3.x

« back to all changes in this revision

Viewing changes to solr/core/src/test-files/solr/conf/schema.xml

  • Committer: Sebastian Meyer
  • Date: 2012-08-03 09:12:40 UTC
  • Revision ID: sebastian.meyer@slub-dresden.de-20120803091240-x6861b0vabq1xror
Remove Lucene and Solr source code and add patches instead
Fix Bug #985487: Auto-suggestion for the search interface

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0" ?>
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
 
<!-- The Solr schema file. This file should be named "schema.xml" and
20
 
     should be located where the classloader for the Solr webapp can find it.
21
 
 
22
 
     This schema is used for testing, and as such has everything and the
23
 
     kitchen sink thrown in. See example/solr/conf/schema.xml for a
24
 
     more concise example.
25
 
 
26
 
     $Id: schema.xml 382610 2006-03-03 01:43:03Z yonik $
27
 
     $Source: /cvs/main/searching/solr-configs/test/WEB-INF/classes/schema.xml,v $
28
 
     $Name:  $
29
 
  -->
30
 
 
31
 
<schema name="test" version="1.0">
32
 
  <types>
33
 
 
34
 
    <!-- field type definitions... note that the "name" attribute is
35
 
         just a label to be used by field definitions.  The "class"
36
 
         attribute and any other attributes determine the real type and
37
 
         behavior of the fieldtype.
38
 
      -->
39
 
 
40
 
    <!-- numeric field types that store and index the text
41
 
         value verbatim (and hence don't sort correctly or support range queries.)
42
 
         These are provided more for backward compatability, allowing one
43
 
         to create a schema that matches an existing lucene index.
44
 
    -->
45
 
    <fieldType name="pint" class="solr.IntField"/>
46
 
    <fieldType name="plong" class="solr.LongField"/>
47
 
    <fieldtype name="pfloat" class="solr.FloatField"/>
48
 
    <fieldType name="pdouble" class="solr.DoubleField"/>
49
 
 
50
 
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
51
 
    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
52
 
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
53
 
    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
54
 
    <fieldType name="byte" class="solr.ByteField" omitNorms="true" positionIncrementGap="0"/>
55
 
    <fieldType name="short" class="solr.ShortField" omitNorms="true" positionIncrementGap="0"/>
56
 
 
57
 
 
58
 
    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
59
 
    <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
60
 
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
61
 
    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
62
 
 
63
 
    <!-- numeric field types that manipulate the value into
64
 
       a string value that isn't human readable in it's internal form,
65
 
       but sorts correctly and supports range queries.
66
 
 
67
 
         If sortMissingLast="true" then a sort on this field will cause documents
68
 
       without the field to come after documents with the field,
69
 
       regardless of the requested sort order.
70
 
         If sortMissingFirst="true" then a sort on this field will cause documents
71
 
       without the field to come before documents with the field,
72
 
       regardless of the requested sort order.
73
 
         If sortMissingLast="false" and sortMissingFirst="false" (the default),
74
 
       then default lucene sorting will be used which places docs without the field
75
 
       first in an ascending sort and last in a descending sort.
76
 
    -->
77
 
    <fieldtype name="sint" class="solr.SortableIntField" sortMissingLast="true"/>
78
 
    <fieldtype name="slong" class="solr.SortableLongField" sortMissingLast="true"/>
79
 
    <fieldtype name="sfloat" class="solr.SortableFloatField" sortMissingLast="true"/>
80
 
    <fieldtype name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true"/>
81
 
 
82
 
    <!-- bcd versions of sortable numeric type may provide smaller
83
 
         storage space and support very large numbers.
84
 
    -->
85
 
    <fieldtype name="bcdint" class="solr.BCDIntField" sortMissingLast="true"/>
86
 
    <fieldtype name="bcdlong" class="solr.BCDLongField" sortMissingLast="true"/>
87
 
    <fieldtype name="bcdstr" class="solr.BCDStrField" sortMissingLast="true"/>
88
 
 
89
 
    <!-- Field type demonstrating an Analyzer failure -->
90
 
    <fieldtype name="failtype1" class="solr.TextField">
91
 
      <analyzer type="index">
92
 
          <tokenizer class="solr.MockTokenizerFactory"/>
93
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
94
 
          <filter class="solr.LowerCaseFilterFactory"/>
95
 
      </analyzer>
96
 
    </fieldtype>
97
 
 
98
 
    <!-- Demonstrating ignoreCaseChange -->
99
 
    <fieldtype name="wdf_nocase" class="solr.TextField">
100
 
      <analyzer>
101
 
          <tokenizer class="solr.MockTokenizerFactory"/>
102
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/>
103
 
          <filter class="solr.LowerCaseFilterFactory"/>
104
 
      </analyzer>
105
 
    </fieldtype>
106
 
 
107
 
     <fieldtype name="wdf_preserve" class="solr.TextField">
108
 
      <analyzer>
109
 
          <tokenizer class="solr.MockTokenizerFactory"/>
110
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
111
 
          <filter class="solr.LowerCaseFilterFactory"/>
112
 
      </analyzer>
113
 
    </fieldtype>
114
 
 
115
 
 
116
 
    <!-- HighlitText optimizes storage for (long) columns which will be highlit -->
117
 
    <fieldtype name="highlittext" class="solr.TextField" compressThreshold="345" />
118
 
 
119
 
    <fieldtype name="boolean" class="solr.BoolField" sortMissingLast="true"/>
120
 
    <fieldtype name="string" class="solr.StrField" sortMissingLast="true"/>
121
 
 
122
 
    <!-- format for date is 1995-12-31T23:59:59.999Z and only the fractional
123
 
         seconds part (.999) is optional.
124
 
      -->
125
 
    <fieldtype name="date" class="solr.TrieDateField" precisionStep="0"/>
126
 
    <fieldtype name="tdate" class="solr.TrieDateField" precisionStep="6"/>
127
 
    <fieldtype name="pdate" class="solr.DateField" sortMissingLast="true"/>
128
 
 
129
 
 
130
 
    <!-- solr.TextField allows the specification of custom
131
 
         text analyzers specified as a tokenizer and a list
132
 
         of token filters.
133
 
      -->
134
 
    <fieldtype name="text" class="solr.TextField">
135
 
      <analyzer>
136
 
        <tokenizer class="solr.StandardTokenizerFactory"/>
137
 
        <filter class="solr.StandardFilterFactory"/>
138
 
        <filter class="solr.LowerCaseFilterFactory"/>
139
 
        <filter class="solr.StopFilterFactory"/>
140
 
        <filter class="solr.PorterStemFilterFactory"/>
141
 
      </analyzer>
142
 
    </fieldtype>
143
 
 
144
 
 
145
 
    <fieldtype name="nametext" class="solr.TextField">
146
 
      <analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"/>
147
 
    </fieldtype>
148
 
 
149
 
    <fieldtype name="teststop" class="solr.TextField">
150
 
       <analyzer>
151
 
        <tokenizer class="solr.LowerCaseTokenizerFactory"/>
152
 
        <filter class="solr.StandardFilterFactory"/>
153
 
        <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
154
 
      </analyzer>
155
 
    </fieldtype>
156
 
 
157
 
    <!-- fieldtypes in this section isolate tokenizers and tokenfilters for testing -->
158
 
    <fieldtype name="lowertok" class="solr.TextField">
159
 
      <analyzer><tokenizer class="solr.LowerCaseTokenizerFactory"/></analyzer>
160
 
    </fieldtype>
161
 
    <fieldtype name="keywordtok" class="solr.TextField">
162
 
      <analyzer><tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/></analyzer>
163
 
    </fieldtype>
164
 
    <fieldtype name="standardtok" class="solr.TextField">
165
 
      <analyzer><tokenizer class="solr.StandardTokenizerFactory"/></analyzer>
166
 
    </fieldtype>
167
 
    <fieldtype name="lettertok" class="solr.TextField">
168
 
      <analyzer><tokenizer class="solr.LetterTokenizerFactory"/></analyzer>
169
 
    </fieldtype>
170
 
    <fieldtype name="whitetok" class="solr.TextField">
171
 
      <analyzer><tokenizer class="solr.MockTokenizerFactory"/></analyzer>
172
 
    </fieldtype>
173
 
    <fieldtype name="HTMLstandardtok" class="solr.TextField">
174
 
      <analyzer>
175
 
      <charFilter class="solr.HTMLStripCharFilterFactory"/>
176
 
      <tokenizer class="solr.StandardTokenizerFactory"/>
177
 
      </analyzer>
178
 
    </fieldtype>
179
 
    <fieldtype name="HTMLwhitetok" class="solr.TextField">
180
 
      <analyzer>
181
 
      <charFilter class="solr.HTMLStripCharFilterFactory"/>
182
 
      <tokenizer class="solr.MockTokenizerFactory"/>
183
 
      </analyzer>
184
 
    </fieldtype>
185
 
    <fieldtype name="standardtokfilt" class="solr.TextField">
186
 
      <analyzer>
187
 
        <tokenizer class="solr.StandardTokenizerFactory"/>
188
 
        <filter class="solr.StandardFilterFactory"/>
189
 
      </analyzer>
190
 
    </fieldtype>
191
 
    <fieldtype name="standardfilt" class="solr.TextField">
192
 
      <analyzer>
193
 
        <tokenizer class="solr.MockTokenizerFactory"/>
194
 
        <filter class="solr.StandardFilterFactory"/>
195
 
      </analyzer>
196
 
    </fieldtype>
197
 
    <fieldtype name="lowerfilt" class="solr.TextField">
198
 
      <analyzer>
199
 
        <tokenizer class="solr.MockTokenizerFactory"/>
200
 
        <filter class="solr.LowerCaseFilterFactory"/>
201
 
      </analyzer>
202
 
    </fieldtype>
203
 
    <fieldtype name="lowerpunctfilt" class="solr.TextField">
204
 
      <analyzer>
205
 
        <tokenizer class="solr.MockTokenizerFactory"/>
206
 
        <filter name="syn" class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"/>
207
 
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="1"/>
208
 
        <filter class="solr.LowerCaseFilterFactory"/>
209
 
      </analyzer>
210
 
    </fieldtype>
211
 
    <fieldtype name="patternreplacefilt" class="solr.TextField">
212
 
      <analyzer type="index">
213
 
        <tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/>
214
 
        <filter class="solr.PatternReplaceFilterFactory"
215
 
                pattern="([^a-zA-Z])" replacement="_" replace="all"
216
 
        />
217
 
      </analyzer>
218
 
      <analyzer type="query">
219
 
        <tokenizer class="solr.MockTokenizerFactory" pattern="keyword"/>
220
 
      </analyzer>
221
 
    </fieldtype>
222
 
    <fieldtype name="patterntok" class="solr.TextField">
223
 
      <analyzer>
224
 
        <tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
225
 
      </analyzer>
226
 
    </fieldtype>
227
 
    <fieldtype name="porterfilt" class="solr.TextField">
228
 
      <analyzer>
229
 
        <tokenizer class="solr.MockTokenizerFactory"/>
230
 
        <filter class="solr.PorterStemFilterFactory"/>
231
 
      </analyzer>
232
 
    </fieldtype>
233
 
    <!-- fieldtype name="snowballfilt" class="solr.TextField">
234
 
      <analyzer>
235
 
        <tokenizer class="solr.MockTokenizerFactory"/>
236
 
        <filter class="solr.SnowballPorterFilterFactory"/>
237
 
      </analyzer>
238
 
    </fieldtype -->
239
 
    <fieldtype name="engporterfilt" class="solr.TextField">
240
 
      <analyzer>
241
 
        <tokenizer class="solr.MockTokenizerFactory"/>
242
 
        <filter class="solr.EnglishPorterFilterFactory"/>
243
 
      </analyzer>
244
 
    </fieldtype>
245
 
    <fieldtype name="custengporterfilt" class="solr.TextField">
246
 
      <analyzer>
247
 
        <tokenizer class="solr.MockTokenizerFactory"/>
248
 
        <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
249
 
      </analyzer>
250
 
    </fieldtype>
251
 
    <fieldtype name="stopfilt" class="solr.TextField">
252
 
      <analyzer>
253
 
        <tokenizer class="solr.MockTokenizerFactory"/>
254
 
        <filter class="solr.StopFilterFactory" ignoreCase="true"/>
255
 
      </analyzer>
256
 
    </fieldtype>
257
 
    <fieldtype name="custstopfilt" class="solr.TextField">
258
 
      <analyzer>
259
 
        <tokenizer class="solr.MockTokenizerFactory"/>
260
 
        <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
261
 
      </analyzer>
262
 
    </fieldtype>
263
 
    <fieldtype name="lengthfilt" class="solr.TextField">
264
 
      <analyzer>
265
 
        <tokenizer class="solr.MockTokenizerFactory"/>
266
 
        <filter class="solr.LengthFilterFactory" min="2" max="5"/>
267
 
      </analyzer>
268
 
    </fieldtype>
269
 
    <fieldType name="charfilthtmlmap" class="solr.TextField">
270
 
      <analyzer>
271
 
        <charFilter class="solr.HTMLStripCharFilterFactory"/>
272
 
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
273
 
        <tokenizer class="solr.MockTokenizerFactory"/>
274
 
      </analyzer>
275
 
    </fieldType>
276
 
 
277
 
    <fieldtype name="subword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
278
 
      <analyzer type="index">
279
 
          <tokenizer class="solr.MockTokenizerFactory"/>
280
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
281
 
          <filter class="solr.LowerCaseFilterFactory"/>
282
 
          <filter class="solr.StopFilterFactory"/>
283
 
          <filter class="solr.PorterStemFilterFactory"/>
284
 
      </analyzer>
285
 
      <analyzer type="query">
286
 
          <tokenizer class="solr.MockTokenizerFactory"/>
287
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
288
 
          <filter class="solr.LowerCaseFilterFactory"/>
289
 
          <filter class="solr.StopFilterFactory"/>
290
 
          <filter class="solr.PorterStemFilterFactory"/>
291
 
      </analyzer>
292
 
    </fieldtype>
293
 
 
294
 
    <fieldtype name="numericsubword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
295
 
      <analyzer type="index">
296
 
          <tokenizer class="solr.MockTokenizerFactory"/>
297
 
          <filter class="solr.LowerCaseFilterFactory"/>
298
 
          <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
299
 
          <filter class="solr.StopFilterFactory"/>
300
 
          <filter class="solr.PorterStemFilterFactory"/>
301
 
      </analyzer>
302
 
      <analyzer type="query">
303
 
          <tokenizer class="solr.MockTokenizerFactory"/>
304
 
          <filter class="solr.LowerCaseFilterFactory"/>
305
 
          <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
306
 
          <filter class="solr.StopFilterFactory"/>
307
 
          <filter class="solr.PorterStemFilterFactory"/>
308
 
      </analyzer>
309
 
    </fieldtype>
310
 
 
311
 
    <fieldtype name="protectedsubword" class="solr.TextField" multiValued="true" positionIncrementGap="100">
312
 
      <analyzer type="index">
313
 
          <tokenizer class="solr.MockTokenizerFactory"/>
314
 
          <filter class="solr.LowerCaseFilterFactory"/>
315
 
          <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" splitOnNumerics="0" splitOnCaseChange="0" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
316
 
      </analyzer>
317
 
      <analyzer type="query">
318
 
          <tokenizer class="solr.MockTokenizerFactory"/>
319
 
          <filter class="solr.LowerCaseFilterFactory"/>
320
 
      </analyzer>
321
 
    </fieldtype>
322
 
 
323
 
 
324
 
    <!-- more flexible in matching skus, but more chance of a false match -->
325
 
    <fieldtype name="skutype1" class="solr.TextField">
326
 
      <analyzer type="index">
327
 
          <tokenizer class="solr.MockTokenizerFactory"/>
328
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
329
 
          <filter class="solr.LowerCaseFilterFactory"/>
330
 
      </analyzer>
331
 
      <analyzer type="query">
332
 
          <tokenizer class="solr.MockTokenizerFactory"/>
333
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
334
 
          <filter class="solr.LowerCaseFilterFactory"/>
335
 
      </analyzer>
336
 
    </fieldtype>
337
 
 
338
 
    <!-- less flexible in matching skus, but less chance of a false match -->
339
 
    <fieldtype name="skutype2" class="solr.TextField">
340
 
      <analyzer type="index">
341
 
          <tokenizer class="solr.MockTokenizerFactory"/>
342
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
343
 
          <filter class="solr.LowerCaseFilterFactory"/>
344
 
      </analyzer>
345
 
      <analyzer type="query">
346
 
          <tokenizer class="solr.MockTokenizerFactory"/>
347
 
          <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
348
 
          <filter class="solr.LowerCaseFilterFactory"/>
349
 
      </analyzer>
350
 
    </fieldtype>
351
 
 
352
 
    <!-- less flexible in matching skus, but less chance of a false match -->
353
 
    <fieldtype name="syn" class="solr.TextField">
354
 
      <analyzer>
355
 
          <tokenizer class="solr.MockTokenizerFactory"/>
356
 
          <filter name="syn" class="solr.SynonymFilterFactory" synonyms="old_synonyms.txt"/>
357
 
      </analyzer>
358
 
    </fieldtype>
359
 
 
360
 
    <!-- Demonstrates How RemoveDuplicatesTokenFilter makes stemmed
361
 
         synonyms "better"
362
 
      -->
363
 
    <fieldtype name="dedup" class="solr.TextField">
364
 
      <analyzer>
365
 
          <tokenizer class="solr.MockTokenizerFactory"/>
366
 
          <filter class="solr.SynonymFilterFactory"
367
 
                  synonyms="old_synonyms.txt" expand="true" />
368
 
          <filter class="solr.PorterStemFilterFactory"/>
369
 
          <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
370
 
      </analyzer>
371
 
    </fieldtype>
372
 
 
373
 
    <fieldtype  name="unstored" class="solr.StrField" indexed="true" stored="false"/>
374
 
 
375
 
 
376
 
  <fieldtype name="textgap" class="solr.TextField" multiValued="true" positionIncrementGap="100">
377
 
      <analyzer>
378
 
          <tokenizer class="solr.MockTokenizerFactory"/>
379
 
          <filter class="solr.LowerCaseFilterFactory"/>
380
 
      </analyzer>
381
 
  </fieldtype>
382
 
 
383
 
  <fieldType name="uuid" class="solr.UUIDField" />
384
 
 
385
 
    <!-- Try out some point types -->
386
 
  <fieldType name="xy" class="solr.PointType" dimension="2" subFieldType="double"/>
387
 
  <fieldType name="x" class="solr.PointType" dimension="1" subFieldType="double"/>
388
 
  <fieldType name="tenD" class="solr.PointType" dimension="10" subFieldType="double"/>
389
 
    <!-- Use the sub field suffix -->
390
 
  <fieldType name="xyd" class="solr.PointType" dimension="2" subFieldSuffix="_d1"/>
391
 
    <fieldtype name="geohash" class="solr.GeoHashField"/>
392
 
 
393
 
 
394
 
  <fieldType name="latLon" class="solr.LatLonType" subFieldType="double"/>
395
 
 
396
 
  
397
 
  <!-- omitPositions example -->
398
 
  <fieldType name="nopositions" class="solr.TextField" omitPositions="true">
399
 
    <analyzer>
400
 
      <tokenizer class="solr.MockTokenizerFactory"/>
401
 
    </analyzer>
402
 
  </fieldType>
403
 
 </types>
404
 
 
405
 
 
406
 
 <fields>
407
 
   <field name="id" type="int" indexed="true" stored="true" multiValued="false" required="false"/>
408
 
   <field name="signatureField" type="string" indexed="true" stored="false"/>
409
 
   <field name="uuid" type="uuid" stored="true" />
410
 
   <field name="name" type="nametext" indexed="true" stored="true"/>
411
 
   <field name="text" type="text" indexed="true" stored="false"/>
412
 
   <field name="subject" type="text" indexed="true" stored="true"/>
413
 
   <field name="title" type="nametext" indexed="true" stored="true"/>
414
 
   <field name="weight" type="float" indexed="true" stored="true" multiValued="false"/>
415
 
   <field name="bday" type="date" indexed="true" stored="true" multiValued="false"/>
416
 
 
417
 
   <field name="title_stemmed" type="text" indexed="true" stored="false"/>
418
 
   <field name="title_lettertok" type="lettertok" indexed="true" stored="false"/>
419
 
 
420
 
   <field name="syn" type="syn" indexed="true" stored="true"/>
421
 
 
422
 
   <!-- to test property inheritance and overriding -->
423
 
   <field name="shouldbeunstored" type="unstored" />
424
 
   <field name="shouldbestored" type="unstored" stored="true"/>
425
 
   <field name="shouldbeunindexed" type="unstored" indexed="false" stored="true"/>
426
 
 
427
 
   <!-- Test points -->
428
 
      <!-- Test points -->
429
 
   <field name="home" type="xy" indexed="true" stored="true" multiValued="false"/>
430
 
   <field name="x" type="x" indexed="true" stored="true" multiValued="false"/>
431
 
   <field name="homed" type="xyd" indexed="true" stored="true" multiValued="false"/>
432
 
   <field name="home_ns" type="xy" indexed="true" stored="false" multiValued="false"/>
433
 
   <field name="work" type="xy" indexed="true" stored="true" multiValued="false"/>
434
 
 
435
 
   <field name="home_ll" type="latLon" indexed="true" stored="true" multiValued="false"/>
436
 
   <field name="work_ll" type="latLon" indexed="true" stored="true" multiValued="false"/>
437
 
   
438
 
   <field name="home_gh" type="geohash" indexed="true" stored="true" multiValued="false"/>
439
 
 
440
 
 
441
 
   <field name="point10" type="tenD" indexed="true" stored="true" multiValued="false"/>
442
 
 
443
 
 
444
 
   <!-- test different combinations of indexed and stored -->
445
 
   <field name="bind" type="boolean" indexed="true" stored="false"/>
446
 
   <field name="bsto" type="boolean" indexed="false" stored="true"/>
447
 
   <field name="bindsto" type="boolean" indexed="true" stored="true"/>
448
 
   <field name="isto" type="int" indexed="false" stored="true"/>
449
 
   <field name="iind" type="int" indexed="true" stored="false"/>
450
 
   <field name="ssto" type="string" indexed="false" stored="true"/>
451
 
   <field name="sind" type="string" indexed="true" stored="false"/>
452
 
   <field name="sindsto" type="string" indexed="true" stored="true"/>
453
 
 
454
 
   <!-- test combinations of term vector settings -->
455
 
   <field name="test_basictv" type="text" termVectors="true"/>
456
 
   <field name="test_notv" type="text" termVectors="false"/>
457
 
   <field name="test_postv" type="text" termVectors="true" termPositions="true"/>
458
 
   <field name="test_offtv" type="text" termVectors="true" termOffsets="true"/>
459
 
   <field name="test_posofftv" type="text" termVectors="true"
460
 
     termPositions="true" termOffsets="true"/>
461
 
 
462
 
   <!-- test valid combinations of indexed settings, 
463
 
        see also BadIndexSchemaTest -->
464
 
   <!-- indexed=false should not prevent omit___=true -->
465
 
   <field name="pint_i_norm" type="pint" omitNorms="true"
466
 
          indexed="false" />
467
 
   <field name="pint_i_tf"   type="pint" omitOmitTermFreqAndPositions="true"
468
 
          indexed="false" />
469
 
   <field name="pint_i_pos"  type="pint" omitPositions="true"
470
 
          indexed="false" />
471
 
   <field name="pint_i_all"  type="pint" 
472
 
          indexed="false" 
473
 
          omitNorms="true"
474
 
          omitOmitTermFreqAndPositions="true"
475
 
          omitPositions="true" />
476
 
   <!-- omitOmitTermFreqAndPositions=false and omitPositions=true are ok -->
477
 
   <field name="pint_tf_pos" type="pint" indexed="true" 
478
 
          omitOmitTermFreqAndPositions="false" omitPositions="true" />
479
 
 
480
 
   <!-- test highlit field settings -->
481
 
   <field name="test_hlt" type="highlittext" indexed="true" compressed="true"/>
482
 
   <field name="test_hlt_off" type="highlittext" indexed="true" compressed="false"/>
483
 
 
484
 
   <!-- fields to test individual tokenizers and tokenfilters -->
485
 
   <field name="teststop" type="teststop" indexed="true" stored="true"/>
486
 
   <field name="lowertok" type="lowertok" indexed="true" stored="true"/>
487
 
   <field name="keywordtok" type="keywordtok" indexed="true" stored="true"/>
488
 
   <field name="standardtok" type="standardtok" indexed="true" stored="true"/>
489
 
   <field name="HTMLstandardtok" type="HTMLstandardtok" indexed="true" stored="true"/>
490
 
   <field name="lettertok" type="lettertok" indexed="true" stored="true"/>
491
 
   <field name="whitetok" type="whitetok" indexed="true" stored="true"/>
492
 
   <field name="HTMLwhitetok" type="HTMLwhitetok" indexed="true" stored="true"/>
493
 
   <field name="standardtokfilt" type="standardtokfilt" indexed="true" stored="true"/>
494
 
   <field name="standardfilt" type="standardfilt" indexed="true" stored="true"/>
495
 
   <field name="lowerfilt" type="lowerfilt" indexed="true" stored="true"/>
496
 
   <field name="lowerfilt1" type="lowerfilt" indexed="true" stored="true"/>
497
 
         <field name="lowerfilt1and2" type="lowerfilt" indexed="true" stored="true"/>
498
 
   <field name="patterntok" type="patterntok" indexed="true" stored="true"/>
499
 
   <field name="patternreplacefilt" type="patternreplacefilt" indexed="true" stored="true"/>
500
 
   <field name="porterfilt" type="porterfilt" indexed="true" stored="true"/>
501
 
   <field name="engporterfilt" type="engporterfilt" indexed="true" stored="true"/>
502
 
   <field name="custengporterfilt" type="custengporterfilt" indexed="true" stored="true"/>
503
 
   <field name="stopfilt" type="stopfilt" indexed="true" stored="true"/>
504
 
   <field name="custstopfilt" type="custstopfilt" indexed="true" stored="true"/>
505
 
   <field name="lengthfilt" type="lengthfilt" indexed="true" stored="true"/>
506
 
   <field name="dedup" type="dedup" indexed="true" stored="true"/>
507
 
   <field name="wdf_nocase" type="wdf_nocase" indexed="true" stored="true"/>
508
 
   <field name="wdf_preserve" type="wdf_preserve" indexed="true" stored="true"/>
509
 
 
510
 
   <field name="numberpartfail" type="failtype1" indexed="true" stored="true"/>
511
 
 
512
 
   <field name="nullfirst" type="string" indexed="true" stored="true" sortMissingFirst="true" multiValued="false"/>
513
 
 
514
 
   <field name="subword" type="subword" indexed="true" stored="true"/>
515
 
   <field name="subword_offsets" type="subword" indexed="true" stored="true" termOffsets="true"/>
516
 
   <field name="numericsubword" type="numericsubword" indexed="true" stored="true"/>
517
 
   <field name="protectedsubword" type="protectedsubword" indexed="true" stored="true"/>
518
 
 
519
 
   <field name="sku1" type="skutype1" indexed="true" stored="true"/>
520
 
   <field name="sku2" type="skutype2" indexed="true" stored="true"/>
521
 
 
522
 
   <field name="textgap" type="textgap" indexed="true" stored="true"/>
523
 
 
524
 
   <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
525
 
   <field name="multiDefault" type="string" indexed="true" stored="true" default="muLti-Default" multiValued="true"/>
526
 
   <field name="intDefault" type="int" indexed="true" stored="true" default="42" multiValued="false"/>
527
 
 
528
 
   
529
 
   <field name="nopositionstext" type="nopositions" indexed="true" stored="true"/>
530
 
 
531
 
   <field name="tlong" type="tlong" indexed="true" stored="true" />
532
 
 
533
 
   <!-- Dynamic field definitions.  If a field name is not found, dynamicFields
534
 
        will be used if the name matches any of the patterns.
535
 
        RESTRICTION: the glob-like pattern in the name attribute must have
536
 
        a "*" only at the start or the end.
537
 
        EXAMPLE:  name="*_i" will match any field ending in _i (like myid_i, z_i)
538
 
        Longer patterns will be matched first.  if equal size patterns
539
 
        both match, the first appearing in the schema will be used.
540
 
   -->
541
 
   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
542
 
   <dynamicField name="*_i1"  type="int"    indexed="true" stored="true" multiValued="false"/>
543
 
                 
544
 
   <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
545
 
   <dynamicField name="*_s1"  type="string"  indexed="true"  stored="true" multiValued="false"/>
546
 
   <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
547
 
   <dynamicField name="*_l1"  type="long"   indexed="true"  stored="true" multiValued="false"/>
548
 
   <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
549
 
   <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
550
 
   <dynamicField name="*_b1" type="boolean" indexed="true"  stored="true" multiValued="false"/>
551
 
   <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
552
 
   <dynamicField name="*_f1"  type="float"  indexed="true"  stored="true" multiValued="false"/>
553
 
   <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
554
 
   <dynamicField name="*_d1"  type="double" indexed="true"  stored="true" multiValued="false"/>
555
 
   <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>
556
 
   <dynamicField name="*_dt1" type="date"    indexed="true"  stored="true" multiValued="false"/>
557
 
   <dynamicField name="*_bcd" type="bcdstr" indexed="true"  stored="true"/>
558
 
   <dynamicField name="*_by"  type="byte"  indexed="true" stored="true"/>
559
 
   <dynamicField name="*_by1" type="byte"  indexed="true" stored="true" multiValued="false"/>
560
 
   <dynamicField name="*_sh" type="short"  indexed="true" stored="true"/>
561
 
   <dynamicField name="*_sh1" type="short"  indexed="true" stored="true" multiValued="false"/>
562
 
 
563
 
 
564
 
      <!-- some trie-coded dynamic fields for faster range queries -->
565
 
   <dynamicField name="*_ti" type="tint"    indexed="true"  stored="true"/>
566
 
   <dynamicField name="*_ti1" type="tint"    indexed="true"  stored="true" multiValued="false"/>
567
 
   <dynamicField name="*_tl" type="tlong"   indexed="true"  stored="true"/>
568
 
   <dynamicField name="*_tl1" type="tlong"   indexed="true"  stored="true" multiValued="false"/>
569
 
   <dynamicField name="*_tf" type="tfloat"  indexed="true"  stored="true"/>
570
 
   <dynamicField name="*_tf1" type="tfloat"  indexed="true"  stored="true" multiValued="false"/>
571
 
   <dynamicField name="*_td" type="tdouble" indexed="true"  stored="true"/>
572
 
   <dynamicField name="*_td1" type="tdouble" indexed="true" stored="true" multiValued="false"/>
573
 
   <dynamicField name="*_tds" type="tdouble" indexed="true" stored="true" multiValued="false"/>
574
 
   <dynamicField name="*_tdt" type="tdate"  indexed="true"  stored="true"/>
575
 
   <dynamicField name="*_tdt1" type="tdate"  indexed="true"  stored="true" multiValued="false"/>
576
 
 
577
 
   <dynamicField name="*_si"  type="sint"  indexed="true"  stored="true" multiValued="false"/>
578
 
   <dynamicField name="*_sl"  type="slong"  indexed="true"  stored="true"/>
579
 
   <dynamicField name="*_sf"  type="sfloat"  indexed="true"  stored="true"/>
580
 
   <dynamicField name="*_sf1"  type="sfloat"  indexed="true"  stored="true" multiValued="false"/>
581
 
   <dynamicField name="*_sd"  type="sdouble"  indexed="true"  stored="true"/>
582
 
   <dynamicField name="*_sd1"  type="sdouble"  indexed="true"  stored="true" multiValued="false"/>
583
 
 
584
 
   <dynamicField name="*_pi"  type="pint"    indexed="true"  stored="true"/>
585
 
   <dynamicField name="*_pf"  type="pfloat"  indexed="true"  stored="true"/>
586
 
   <dynamicField name="*_pl"  type="plong"   indexed="true"  stored="true"/>
587
 
   <dynamicField name="*_pd"  type="pdouble" indexed="true"  stored="true"/>
588
 
   <dynamicField name="*_pdt"  type="pdate" indexed="true"  stored="true"/>
589
 
 
590
 
 
591
 
   <dynamicField name="*_sI" type="string"  indexed="true"  stored="false"/>
592
 
   <dynamicField name="*_sS" type="string"  indexed="false" stored="true"/>
593
 
   <dynamicField name="t_*"  type="text"    indexed="true"  stored="true"/>
594
 
   <dynamicField name="tv_*"  type="text" indexed="true"  stored="true"
595
 
      termVectors="true" termPositions="true" termOffsets="true"/>
596
 
   <dynamicField name="tv_mv_*"  type="text" indexed="true"  stored="true" multiValued="true"
597
 
      termVectors="true" termPositions="true" termOffsets="true"/>
598
 
 
599
 
   <dynamicField name="*_p"  type="xyd" indexed="true"  stored="true" multiValued="false"/>
600
 
 
601
 
   <!-- special fields for dynamic copyField test -->
602
 
   <dynamicField name="dynamic_*" type="string" indexed="true" stored="true"/>
603
 
   <dynamicField name="*_dynamic" type="string" indexed="true" stored="true"/>
604
 
 
605
 
   <!-- for testing to ensure that longer patterns are matched first -->
606
 
   <dynamicField name="*aa"  type="string"  indexed="true" stored="true"/>
607
 
   <dynamicField name="*aaa" type="pint" indexed="false" stored="true"/>
608
 
 
609
 
   <!-- ignored becuase not stored or indexed -->
610
 
   <dynamicField name="*_ignored" type="text" indexed="false" stored="false"/>
611
 
 
612
 
   <dynamicField name="*_mfacet" type="string" indexed="true" stored="false" multiValued="true" />
613
 
 
614
 
 </fields>
615
 
 
616
 
 <defaultSearchField>text</defaultSearchField>
617
 
 <uniqueKey>id</uniqueKey>
618
 
 
619
 
  <!-- copyField commands copy one field to another at the time a document
620
 
        is added to the index.  It's used either to index the same field different
621
 
        ways, or to add multiple fields to the same field for easier/faster searching.
622
 
   -->
623
 
   <copyField source="title" dest="title_stemmed"/>
624
 
   <copyField source="title" dest="title_lettertok"/>
625
 
 
626
 
   <copyField source="title" dest="text"/>
627
 
         <copyField source="subject" dest="text"/>
628
 
 
629
 
         <copyField source="lowerfilt1" dest="lowerfilt1and2"/>
630
 
         <copyField source="lowerfilt" dest="lowerfilt1and2"/>
631
 
 
632
 
         <copyField source="*_t" dest="text"/>
633
 
 
634
 
         <copyField source="id"            dest="range_facet_si"/>
635
 
         <copyField source="id"            dest="range_facet_l"/>
636
 
         <copyField source="id"            dest="range_facet_sl"/>
637
 
         <copyField source="range_facet_f" dest="range_facet_sf"/>
638
 
         <copyField source="range_facet_f" dest="range_facet_d"/>
639
 
         <copyField source="range_facet_f" dest="range_facet_sd"/>
640
 
 
641
 
         <copyField source="bday" dest="bday_pdt"/>
642
 
         <copyField source="a_tdt" dest="a_pdt"/>
643
 
 
644
 
   <!-- dynamic destination -->
645
 
   <copyField source="*_dynamic" dest="dynamic_*"/>
646
 
 
647
 
 <!-- Similarity is the scoring routine for each document vs a query.
648
 
      A custom similarity may be specified here, but the default is fine
649
 
      for most applications.
650
 
 -->
651
 
 <similarity class="org.apache.solr.schema.CustomSimilarityFactory">
652
 
   <str name="echo">is there an echo?</str>
653
 
 </similarity>
654
 
 
655
 
</schema>