|
| 1 | +<?xml version="1.0" encoding="UTF-8" ?> |
| 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 | +<schema name="ckan" version="2.0"> |
| 20 | + |
| 21 | +<types> |
| 22 | + <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> |
| 23 | + <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> |
| 24 | + <fieldtype name="binary" class="solr.BinaryField"/> |
| 25 | + <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> |
| 26 | + <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> |
| 27 | + <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> |
| 28 | + <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> |
| 29 | + <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/> |
| 30 | + <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/> |
| 31 | + <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/> |
| 32 | + <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/> |
| 33 | + <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0"/> |
| 34 | + <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/> |
| 35 | + |
| 36 | + <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> |
| 37 | + <analyzer type="index"> |
| 38 | + <tokenizer class="solr.WhitespaceTokenizerFactory"/> |
| 39 | + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> |
| 40 | + <filter class="solr.LowerCaseFilterFactory"/> |
| 41 | + <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> |
| 42 | + <filter class="solr.ASCIIFoldingFilterFactory"/> |
| 43 | + </analyzer> |
| 44 | + <analyzer type="query"> |
| 45 | + <tokenizer class="solr.WhitespaceTokenizerFactory"/> |
| 46 | + <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> |
| 47 | + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> |
| 48 | + <filter class="solr.LowerCaseFilterFactory"/> |
| 49 | + <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> |
| 50 | + <filter class="solr.ASCIIFoldingFilterFactory"/> |
| 51 | + </analyzer> |
| 52 | + </fieldType> |
| 53 | + |
| 54 | + |
| 55 | + <!-- A general unstemmed text field - good if one does not know the language of the field --> |
| 56 | + <fieldType name="textgen" class="solr.TextField" positionIncrementGap="100"> |
| 57 | + <analyzer type="index"> |
| 58 | + <tokenizer class="solr.WhitespaceTokenizerFactory"/> |
| 59 | + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> |
| 60 | + <filter class="solr.LowerCaseFilterFactory"/> |
| 61 | + </analyzer> |
| 62 | + <analyzer type="query"> |
| 63 | + <tokenizer class="solr.WhitespaceTokenizerFactory"/> |
| 64 | + <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> |
| 65 | + <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/> |
| 66 | + <filter class="solr.LowerCaseFilterFactory"/> |
| 67 | + </analyzer> |
| 68 | + </fieldType> |
| 69 | +</types> |
| 70 | + |
| 71 | + |
| 72 | +<fields> |
| 73 | + <field name="index_id" type="string" indexed="true" stored="true" required="true" /> |
| 74 | + <field name="id" type="string" indexed="true" stored="true" required="true" /> |
| 75 | + <field name="site_id" type="string" indexed="true" stored="true" required="true" /> |
| 76 | + <field name="title" type="text" indexed="true" stored="true" /> |
| 77 | + <field name="entity_type" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 78 | + <field name="dataset_type" type="string" indexed="true" stored="true" /> |
| 79 | + <field name="state" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 80 | + <field name="name" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 81 | + <field name="revision_id" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 82 | + <field name="version" type="string" indexed="true" stored="true" /> |
| 83 | + <field name="url" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 84 | + <field name="ckan_url" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 85 | + <field name="download_url" type="string" indexed="true" stored="true" omitNorms="true" /> |
| 86 | + <field name="notes" type="text" indexed="true" stored="true"/> |
| 87 | + <field name="author" type="textgen" indexed="true" stored="true" /> |
| 88 | + <field name="author_email" type="textgen" indexed="true" stored="true" /> |
| 89 | + <field name="maintainer" type="textgen" indexed="true" stored="true" /> |
| 90 | + <field name="maintainer_email" type="textgen" indexed="true" stored="true" /> |
| 91 | + <field name="license" type="string" indexed="true" stored="true" /> |
| 92 | + <field name="license_id" type="string" indexed="true" stored="true" /> |
| 93 | + <field name="ratings_count" type="int" indexed="true" stored="false" /> |
| 94 | + <field name="ratings_average" type="float" indexed="true" stored="false" /> |
| 95 | + <field name="tags" type="string" indexed="true" stored="true" multiValued="true"/> |
| 96 | + <field name="groups" type="string" indexed="true" stored="true" multiValued="true"/> |
| 97 | + |
| 98 | + <field name="capacity" type="string" indexed="true" stored="true" multiValued="false"/> |
| 99 | + |
| 100 | + <field name="res_description" type="textgen" indexed="true" stored="true" multiValued="true"/> |
| 101 | + <field name="res_format" type="string" indexed="true" stored="true" multiValued="true"/> |
| 102 | + <field name="res_url" type="string" indexed="true" stored="true" multiValued="true"/> |
| 103 | + |
| 104 | + <!-- catchall field, containing all other searchable text fields (implemented |
| 105 | + via copyField further on in this schema --> |
| 106 | + <field name="text" type="text" indexed="true" stored="false" multiValued="true"/> |
| 107 | + <field name="urls" type="text" indexed="true" stored="false" multiValued="true"/> |
| 108 | + |
| 109 | + <field name="depends_on" type="text" indexed="true" stored="false" multiValued="true"/> |
| 110 | + <field name="dependency_of" type="text" indexed="true" stored="false" multiValued="true"/> |
| 111 | + <field name="derives_from" type="text" indexed="true" stored="false" multiValued="true"/> |
| 112 | + <field name="has_derivation" type="text" indexed="true" stored="false" multiValued="true"/> |
| 113 | + <field name="links_to" type="text" indexed="true" stored="false" multiValued="true"/> |
| 114 | + <field name="linked_from" type="text" indexed="true" stored="false" multiValued="true"/> |
| 115 | + <field name="child_of" type="text" indexed="true" stored="false" multiValued="true"/> |
| 116 | + <field name="parent_of" type="text" indexed="true" stored="false" multiValued="true"/> |
| 117 | + <field name="views_total" type="int" indexed="true" stored="false"/> |
| 118 | + <field name="views_recent" type="int" indexed="true" stored="false"/> |
| 119 | + <field name="resources_accessed_total" type="int" indexed="true" stored="false"/> |
| 120 | + <field name="resources_accessed_recent" type="int" indexed="true" stored="false"/> |
| 121 | + |
| 122 | + <field name="metadata_created" type="date" indexed="true" stored="true" multiValued="false"/> |
| 123 | + <field name="metadata_modified" type="date" indexed="true" stored="true" multiValued="false"/> |
| 124 | + |
| 125 | + <field name="indexed_ts" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/> |
| 126 | + |
| 127 | + <!-- Copy the title field into titleString, and treat as a string |
| 128 | + (rather than text type). This allows us to sort on the titleString --> |
| 129 | + <field name="title_string" type="string" indexed="true" stored="false" /> |
| 130 | + |
| 131 | + <field name="data_dict" type="string" indexed="false" stored="true" /> |
| 132 | + <field name="validated_data_dict" type="string" indexed="false" stored="true" /> |
| 133 | + |
| 134 | + <field name="_version_" type="string" indexed="true" stored="true"/> |
| 135 | + |
| 136 | + <dynamicField name="*_date" type="date" indexed="true" stored="true" multiValued="false"/> |
| 137 | + |
| 138 | + <dynamicField name="extras_*" type="text" indexed="true" stored="true" multiValued="false"/> |
| 139 | + <dynamicField name="vocab_*" type="string" indexed="true" stored="true" multiValued="true"/> |
| 140 | + <dynamicField name="*" type="string" indexed="true" stored="false"/> |
| 141 | +</fields> |
| 142 | + |
| 143 | +<uniqueKey>index_id</uniqueKey> |
| 144 | +<defaultSearchField>text</defaultSearchField> |
| 145 | +<solrQueryParser defaultOperator="AND"/> |
| 146 | + |
| 147 | +<copyField source="url" dest="urls"/> |
| 148 | +<copyField source="ckan_url" dest="urls"/> |
| 149 | +<copyField source="download_url" dest="urls"/> |
| 150 | +<copyField source="res_url" dest="urls"/> |
| 151 | +<copyField source="extras_*" dest="text"/> |
| 152 | +<copyField source="vocab_*" dest="text"/> |
| 153 | +<copyField source="urls" dest="text"/> |
| 154 | +<copyField source="name" dest="text"/> |
| 155 | +<copyField source="title" dest="text"/> |
| 156 | +<copyField source="text" dest="text"/> |
| 157 | +<copyField source="license" dest="text"/> |
| 158 | +<copyField source="notes" dest="text"/> |
| 159 | +<copyField source="tags" dest="text"/> |
| 160 | +<copyField source="groups" dest="text"/> |
| 161 | +<copyField source="res_description" dest="text"/> |
| 162 | +<copyField source="maintainer" dest="text"/> |
| 163 | +<copyField source="author" dest="text"/> |
| 164 | + |
| 165 | +</schema> |
0 commit comments