-
Notifications
You must be signed in to change notification settings - Fork 3
/
schema.xml
193 lines (147 loc) · 9.7 KB
/
schema.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Schema file for Zotonic rsc records stored in Solr for fast searching.
Arjan Scherpenisse <arjan@scherpenisse.net>, March 2010
-->
<schema name="zotonic" version="1.2">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="binary" class="solr.BinaryField"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="random" class="solr.RandomSortField" indexed="true" />
<!--
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>
-->
<!-- A general unstemmed text field - good if one does not know the language of the field -->
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> -->
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!-- since fields of this type are by default not stored or indexed,
any data added to them will be ignored outright. -->
<fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
</types>
<fields>
<!-- required by sold -->
<field name="_version_" type="long" indexed="true" stored="true"/>
<!-- regular rsc fields -->
<field name="id" type="int" indexed="true" stored="true" required="true" />
<field name="version" type="int" indexed="true" stored="true" multiValued="false" required="true" />
<field name="uri" type="string" indexed="true" stored="true" />
<field name="name" type="string" indexed="true" stored="true" />
<field name="page_path" type="string" indexed="true" stored="true" />
<field name="is_authoritative" type="boolean" indexed="true" stored="true" />
<field name="is_published" type="boolean" indexed="true" stored="true" />
<field name="is_featured" type="boolean" indexed="true" stored="true" />
<field name="is_protected" type="boolean" indexed="true" stored="true" />
<field name="modified" type="date" indexed="true" stored="true"/>
<field name="created" type="date" indexed="true" stored="true"/>
<field name="modifier_id" type="int" indexed="true" stored="true" />
<field name="creator_id" type="int" indexed="true" stored="true" />
<field name="visible_for" type="int" />
<field name="publication_start" type="date" indexed="true" stored="true"/>
<field name="publication_end" type="date" indexed="true" stored="true"/>
<!-- rsc category, for a rsc in a/b/c, it will store ids of all a, b, c for nice facetting.
-->
<field name="category" type="string" indexed="true" stored="true" multiValued="true" />
<!-- primary rsc category -->
<field name="category_id" type="int" indexed="true" stored="true" />
<!-- text fields -->
<field name="title" type="text" indexed="true" stored="true" omitNorms="true" />
<field name="summary" type="text" indexed="true" stored="true" termVectors="true" />
<field name="body" type="text" indexed="true" />
<!-- all text, collected -->
<field name="text" type="text" indexed="true" multiValued="true" />
<!-- pivot -->
<field name="pivot_title" type="string" indexed="true" />
<field name="first_name" type="text" indexed="true" stored="true"/>
<field name="surname" type="text" indexed="true" stored="true"/>
<field name="gender" type="string" indexed="true" stored="true"/>
<field name="date_start" type="date" indexed="true" stored="true"/>
<field name="date_end" type="date" indexed="true" stored="true"/>
<!-- needed? -->
<!-- <field name="date_start_month_day" type="int" indexed="true" stored="true"/> -->
<!-- <field name="date_end_month_day" type="int" indexed="true" stored="true"/> -->
<field name="street" type="text" indexed="true" stored="true"/>
<field name="city" type="text" indexed="true" stored="true"/>
<field name="postcode" type="text" indexed="true" stored="true"/>
<field name="state" type="string" indexed="true" stored="true"/>
<field name="country" type="string" indexed="true" stored="true"/>
<field name="geocode" type="string" indexed="true" stored="true"/>
<!-- edges -->
<!-- all subjects/objects -->
<field name="s" type="int" multiValued="true" stored="true" />
<field name="o" type="int" multiValued="true" stored="true" termVectors="true" /><!-- for "more like this"; will match on similar objects. -->
<!-- edges by predicate name, eg s_related -->
<dynamicField name="s_*" type="int" indexed="true" multiValued="true" stored="true" />
<dynamicField name="o_*" type="int" indexed="true" multiValued="true" stored="true" />
<!-- special field for matching on title -->
<field name="match_title" type="text" indexed="true" termVectors="true" />
<!-- extra fields can be added (by zotonic modules hooking into the solr module) -->
<dynamicField name="x_*" type="text" stored="true" multiValued="true" />
<!-- integers -->
<dynamicField name="x_int_*" type="int" multiValued="false" />
<dynamicField name="x_float_*" type="float" multiValued="false" />
</fields>
<!-- Field to use to determine and enforce document uniqueness.
Unless this field is marked with required="false", it will be a required field
-->
<uniqueKey>id</uniqueKey>
<!-- field for the QueryParser to use when an explicit fieldname is absent -->
<defaultSearchField>text</defaultSearchField>
<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
<solrQueryParser defaultOperator="OR"/>
<!-- copyField commands copy one field to another at the time a document
is added to the index. It's used either to index the same field differently,
or to add multiple fields to the same field for easier/faster searching. -->
<copyField source="title" dest="match_title"/>
<!--
<copyField source="title" dest="text"/>
<copyField source="summary" dest="text"/>
<copyField source="body" dest="text"/>
-->
</schema>