<?xml version="1.0" encoding="UTF-8"?> <schema name="geoblacklight-schema" version="1.7"> <uniqueKey>layer_slug_s</uniqueKey> <fields> <field name="_version_" type="long" stored="true" indexed="true"/> <field name="timestamp" type="date" stored="true" indexed="true" default="NOW"/> <field name="layer_slug_s" type="string" stored="true" indexed="true" required="true"/> <field name="geoblacklight_version" type="string" stored="true" indexed="true"/> <field name="uuid" type="string" stored="true" indexed="true"/><!-- deprecated --> <!-- core generated fields --> <field name="text" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true" /> <!-- dynamic field with simple types by suffix --> <dynamicField name="*_b" type="boolean" stored="true" indexed="true"/> <dynamicField name="*_d" type="double" stored="true" indexed="true"/> <dynamicField name="*_dt" type="date" stored="true" indexed="true"/> <dynamicField name="*_f" type="float" stored="true" indexed="true"/> <dynamicField name="*_i" type="int" stored="true" indexed="true"/> <dynamicField name="*_im" type="int" stored="true" indexed="true" multiValued="true" /> <dynamicField name="*_l" type="long" stored="true" indexed="true"/> <dynamicField name="*_s" type="string" stored="true" indexed="true"/> <dynamicField name="*_ss" type="string" stored="true" indexed="false"/> <dynamicField name="*_si" type="string" stored="false" indexed="true"/> <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true" /> <dynamicField name="*_sm" type="string" stored="true" indexed="true" multiValued="true" /> <dynamicField name="*_url" type="string" stored="true" indexed="false"/> <dynamicField name="*_blob" type="binary" stored="true" indexed="false"/> <!-- dynamic Text fields by suffix without storage --> <dynamicField name="*_t" type="text_en" stored="false" indexed="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tm" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_ti" type="text_en" stored="false" indexed="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tmi" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_sort" type="text_sort" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*spell" type="textSpell" indexed="true" stored="false" multiValued="true" /> <dynamicField name="*suggest" type="textSuggest" indexed="true" stored="false" multiValued="true" /> <!-- Spatial field types: Solr3: <field name="my_pt">83.1,-117.312</field> as (y,x) Solr4: <field name="my_bbox">-117.312 83.1 -115.39 84.31</field> as (W S E N) <field name="my_geom">ENVELOPE(-117.312, -115.39, 84.31, 83.1)</field> as (W E N S) <field name="my_jts">POLYGON((1 8, 1 9, 2 9, 2 8, 1 8))</field> as WKT for point, linestring, polygon --> <dynamicField name="*_pt" type="location" stored="true" indexed="true"/> <dynamicField name="*_bbox" type="location_rpt" stored="true" indexed="true"/><!-- deprecated --> <dynamicField name="*_geom" type="location_rpt" stored="true" indexed="true"/> <dynamicField name="*_bboxtype" type="bbox" stored="true" indexed="true"/> </fields> <types> <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/> <fieldType name="int" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/> <fieldType name="float" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/> <fieldType name="long" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/> <fieldType name="double" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/> <!-- The format for this date field is of the form 1995-12-31T23:59:59Z. The trailing "Z" designates UTC time and is mandatory. A Trie based date field for faster date range queries and date faceting. --> <fieldType name="date" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/> <!--Binary data type. The data should be sent/retrieved in as Base64 encoded Strings --> <fieldtype name="binary" class="solr.BinaryField"/> <!-- A text field with defaults appropriate for English: it tokenizes with StandardTokenizer, removes English stop words (stopwords_en.txt), down cases, protects words from protwords.txt, and finally applies Porter's stemming. The query time analyzer also applies synonyms from synonyms.txt. --> <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPossessiveFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPossessiveFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldType> <!-- for alpha sorting as a single token --> <fieldType name="text_sort" class="solr.TextField" sortMissingLast="true" omitNorms="true"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> <filter class="solr.TrimFilterFactory" /> <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z0-9 ])" replacement="" replace="all"/> </analyzer> </fieldType> <!-- for spell checking --> <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" > <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <!-- for suggestions --> <fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <!-- Spatial field types --> <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_d"/> <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers" /> <!-- Adding field type for bboxField that enables, among other things, overlap ratio calculations --> <fieldType name="bbox" class="solr.BBoxField" geo="true" distanceUnits="kilometers" numberType="pdouble" /> <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/> </types> <!-- for scoring formula --> <copyField source="dct_spatial_sm" dest="dct_spatial_tmi" maxChars="10000"/> <copyField source="dct_temporal_sm" dest="dct_temporal_tmi" maxChars="10000"/> <copyField source="dc_creator_sm" dest="dc_creator_tmi" maxChars="1000"/> <copyField source="dc_description_s" dest="dc_description_ti" maxChars="10000"/> <copyField source="dc_format_s" dest="dc_format_ti" maxChars="100"/> <copyField source="dc_identifier_s" dest="dc_identifier_ti" maxChars="100"/> <copyField source="dc_publisher_s" dest="dc_publisher_ti" maxChars="1000"/> <copyField source="dc_rights_s" dest="dc_rights_ti" maxChars="100"/> <copyField source="dct_provenance_s" dest="dct_provenance_ti" maxChars="1000"/> <copyField source="dc_subject_sm" dest="dc_subject_tmi" maxChars="10000"/> <copyField source="dc_title_s" dest="dc_title_ti" maxChars="1000"/> <copyField source="dct_isPartOf_sm" dest="dct_isPartOf_tmi" maxChars="1000"/> <copyField source="layer_geom_type_s" dest="layer_geom_type_ti" maxChars="100"/> <copyField source="layer_slug_s" dest="layer_slug_ti" maxChars="100"/> <!-- core text search --> <copyField source="*_s" dest="text" /> <copyField source="*_sm" dest="text" /> <!-- for sorting text fields --> <copyField source="dct_provenance_s" dest="dct_provenance_sort"/> <copyField source="dc_publisher_s" dest="dc_publisher_sort"/> <copyField source="dc_title_s" dest="dc_title_sort"/> <!-- for spell checking --> <copyField source="dc_title_s" dest="spell"/> <copyField source="dc_creator_sm" dest="spell"/> <copyField source="dc_publisher_s" dest="spell"/> <copyField source="dct_provenance_s" dest="spell"/> <copyField source="dc_subject_sm" dest="spell"/> <copyField source="dct_spatial_sm" dest="spell"/> <!-- for suggestions --> <copyField source="dc_title_s" dest="suggest"/> <copyField source="dc_creator_sm" dest="suggest"/> <copyField source="dc_publisher_s" dest="suggest"/> <copyField source="dct_provenance_s" dest="suggest"/> <copyField source="dc_subject_sm" dest="suggest"/> <copyField source="dct_spatial_sm" dest="suggest"/> <!-- for bbox value --> <copyField source="solr_geom" dest="solr_bboxtype"/> </schema>