1
<?xml version="1.0" encoding="UTF-8" ?>
2
3
<schema name="example" version="1.2">
4
  <types>
5
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
6
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
7
    <fieldtype name="binary" class="solr.BinaryField"/>
8
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
9
    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
10
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
11
    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
12
    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
13
    <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
14
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
15
    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>
16
    <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
17
    <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
18
    <fieldType name="uuid" class="solr.UUIDField" omitNorms="true" positionIncrementGap="0"/>
19
    <fieldType name="text_as_is" class="solr.TextField" positionIncrementGap="100"/>
20
    <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
21
      <analyzer>
22
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
23
      </analyzer>
24
    </fieldType>
25
    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
26
      <analyzer type="index">
27
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
28
        <filter class="solr.StopFilterFactory"
29
                ignoreCase="true"
30
                words="stopwords.txt"
31
                enablePositionIncrements="true"
32
                />
33
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
34
        <filter class="solr.LowerCaseFilterFactory"/>
35
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
36
      </analyzer>
37
      <analyzer type="query">
38
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
39
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
40
        <filter class="solr.StopFilterFactory"
41
                ignoreCase="true"
42
                words="stopwords.txt"
43
                enablePositionIncrements="true"
44
                />
45
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
46
        <filter class="solr.LowerCaseFilterFactory"/>
47
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
48
      </analyzer>
49
    </fieldType>
50
51
    <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
52
      <analyzer>
53
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
54
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
55
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
56
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
57
        <filter class="solr.LowerCaseFilterFactory"/>
58
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
59
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
60
      </analyzer>
61
    </fieldType>
62
63
    <fieldType name="textgen" class="solr.TextField" positionIncrementGap="100">
64
      <analyzer type="index">
65
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
66
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
67
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
68
        <filter class="solr.LowerCaseFilterFactory"/>
69
      </analyzer>
70
      <analyzer type="query">
71
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
72
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
73
        <filter class="solr.StopFilterFactory"
74
                ignoreCase="true"
75
                words="stopwords.txt"
76
                enablePositionIncrements="true"
77
                />
78
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
79
        <filter class="solr.LowerCaseFilterFactory"/>
80
      </analyzer>
81
    </fieldType>
82
83
    <fieldType name="path" class="solr.TextField" positionIncrementGap="100">
84
      <analyzer>
85
        <tokenizer class="solr.PatternTokenizerFactory" pattern="/"/>
86
        <filter class="solr.LowerCaseFilterFactory"/>
87
      </analyzer>
88
    </fieldType>
89
90
    <fieldType name="filename" class="solr.TextField" positionIncrementGap="100">
91
      <analyzer type="index">
92
        <tokenizer class="solr.KeywordTokenizerFactory"/>
93
        <filter class="solr.PatternReplaceFilterFactory" pattern="^.+/([^/]+)$" replacement="$1"/>
94
        <filter class="solr.LowerCaseFilterFactory"/>
95
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
96
      </analyzer>
97
      <analyzer type="query">
98
        <tokenizer class="solr.KeywordTokenizerFactory"/>
99
        <filter class="solr.LowerCaseFilterFactory"/>
100
      </analyzer>
101
    </fieldType>
102
103
    <fieldType name="filename_stopped" class="solr.TextField" positionIncrementGap="100">
104
      <analyzer type="index">
105
        <tokenizer class="solr.PatternTokenizerFactory" pattern="[/-_]"/>
106
        <filter class="solr.LowerCaseFilterFactory"/>
107
        <filter class="solr.StopFilterFactory" words="filename_words.txt" ignoreCase="true"/>
108
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
109
      </analyzer>
110
      <analyzer type="query">
111
        <tokenizer class="solr.PatternTokenizerFactory" pattern="[/-_]"/>
112
        <filter class="solr.LowerCaseFilterFactory"/>
113
        <filter class="solr.StopFilterFactory" words="filename_words.txt" ignoreCase="true"/>
114
      </analyzer>
115
    </fieldType>
116
117
    <fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100">
118
      <analyzer type="index">
119
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
120
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
121
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
122
        <filter class="solr.LowerCaseFilterFactory"/>
123
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
124
           maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
125
      </analyzer>
126
      <analyzer type="query">
127
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
128
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
129
        <filter class="solr.StopFilterFactory"
130
                ignoreCase="true"
131
                words="stopwords.txt"
132
                enablePositionIncrements="true"
133
                />
134
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
135
        <filter class="solr.LowerCaseFilterFactory"/>
136
      </analyzer>
137
    </fieldType>
138
139
    <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
140
      <analyzer>
141
        <tokenizer class="solr.StandardTokenizerFactory"/>
142
        <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
143
      </analyzer>
144
    </fieldtype>
145
146
    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
147
      <analyzer type="index">
148
        <tokenizer class="solr.PatternTokenizerFactory" pattern="/"/>
149
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
150
        <filter class="solr.LowerCaseFilterFactory"/>
151
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
152
      </analyzer>
153
      <analyzer type="query">
154
        <tokenizer class="solr.PatternTokenizerFactory" pattern="/"/>
155
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
156
        <filter class="solr.LowerCaseFilterFactory"/>
157
      </analyzer>
158
    </fieldType>
159
160
    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" /> 
161
162
    <fieldtype name="substring" class="solr.TextField">
163
      <analyzer type="query">
164
        <tokenizer class="solr.NGramTokenizerFactory" minGramSize="4" maxGramSize="20" />
165
        <filter class="solr.LowerCaseFilterFactory"/>
166
      </analyzer>
167
      <analyzer type="index">
168
        <tokenizer class="solr.NGramTokenizerFactory" minGramSize="4" maxGramSize="20" />
169
        <filter class="solr.LowerCaseFilterFactory"/>
170
      </analyzer>
171
    </fieldtype>
172
173
 </types>
174
175
 <fields>
176
   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
177
   <field name="name" type="substring" indexed="true" stored="true" required="true" termVectors="true" />
178
   <field name="version" type="string" indexed="true" stored="true" required="true" />
179
   <field name="release" type="string" indexed="true" stored="true" required="true" />
180
   <field name="arch" type="string" indexed="true" stored="true" required="true" termVectors="true" />
181
   <field name="sha" type="string" indexed="true" stored="true" required="true" />
182
   <field name="distribution" type="string" indexed="true" stored="true" required="true" />
183
   <field name="distribution_sub" type="substring" indexed="true" stored="true" required="true" />
184
   <field name="repoid" type="string" indexed="true" stored="true" required="true" />
185
   <field name="repourl" type="string" indexed="true" stored="true" required="false" />
186
   <field name="buildtime" type="date" indexed="true" stored="true" required="false" />
187
   <field name="vendor" type="lowercase" indexed="true" stored="true" required="false" />
188
   <field name="size_package" type="long" indexed="true" stored="true" required="false" />
189
   <field name="size_installed" type="long" indexed="true" stored="true" required="false" />
190
   <field name="sourcerpm" type="substring" indexed="true" stored="true" required="false" />
191
   <field name="sourcerpmid" type="string" indexed="true" stored="true" required="false" />
192
   <field name="url" type="string" indexed="true" stored="true" required="false" />
193
   <field name="location" type="string" indexed="false" stored="true" required="true" />
194
   <field name="summary" type="text" indexed="true" stored="true" required="true" />
195
   <field name="packager" type="text_ws" indexed="true" stored="true" required="false" termVectors="true" />
196
   <field name="description" type="text" indexed="true" stored="true" required="false" />
197
   <field name="license" type="string" indexed="true" stored="true" required="true" />
198
   <field name="group_last" type="path" indexed="true" stored="true" required="true" multiValued="true"/>
199
   <field name="group_exact" type="text_as_is" indexed="true" stored="true" required="true" />
200
   <field name="group" type="text_as_is" indexed="true" stored="true" multiValued="true" required="true"/>
201
202
   <field name="file" type="filename" indexed="true" stored="true" required="false" multiValued="true" />
203
   <field name="mime" type="string" indexed="true" stored="true" required="false" multiValued="true" termVectors="true" />
204
   <field name="perlmod" type="string" indexed="true" stored="true" required="false" multiValued="true" termVectors="true" />
205
   <field name="provides" type="string" indexed="true" stored="true" required="false" multiValued="true" />
206
   <field name="requires" type="string" indexed="true" stored="true" required="false" multiValued="true" />
207
   <field name="obsoletes" type="string" indexed="true" stored="true" required="false" multiValued="true" />
208
   <field name="supplements" type="string" indexed="true" stored="true" required="false" multiValued="true" />
209
   <field name="conflicts" type="string" indexed="true" stored="true" required="false" multiValued="true" />
210
   <field name="recommends" type="string" indexed="true" stored="true" required="false" multiValued="true" />
211
   <field name="suggests" type="string" indexed="true" stored="true" required="false" multiValued="true" />
212
   <field name="enhances" type="string" indexed="true" stored="true" required="false" multiValued="true" />
213
214
   <field name="tag" type="string" indexed="true" stored="true" required="false" multiValued="true" />
215
216
   <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
217
   <field name="text_rev" type="text_rev" indexed="true" stored="false" multiValued="true"/>
218
219
   <!--<field name="id" type="uuid" indexed="true" stored="true" required="true" default="NEW"/>-->
220
   <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
221
222
   <field name="fqfile" type="string" indexed="true" stored="false" multiValued="true"/>  
223
   <field name="file_stopped" type="filename_stopped" indexed="true" stored="false" multiValued="true"/>  
224
 </fields>
225
226
 <solrQueryParser defaultOperator="OR"/>
227
228
 <copyField source="distribution" dest="distribution_sub"/>
229
230
 <copyField source="group_exact" dest="group"/>
231
 <copyField source="group_last" dest="group"/>
232
233
 <copyField source="file" dest="fqfile"/>
234
 <copyField source="file" dest="file_stopped"/>
235
236
 <copyField source="name" dest="text"/>
237
 <copyField source="summary" dest="text"/>
238
 <copyField source="description" dest="text"/>
239
 <copyField source="group" dest="text"/>
240
 <copyField source="file" dest="text"/>
241
 <copyField source="fqfile" dest="text"/>
242
 <copyField source="file_stopped" dest="text"/>
243
 <copyField source="provides" dest="text"/>
244
	
245
 <uniqueKey>id</uniqueKey>
246
 <defaultSearchField>text</defaultSearchField>
247
248
</schema>