<?xml version=“1.0” encoding=“UTF-8”?> <schema name=“Hydra” version=“1.5”>
<!-- NOTE: various comments and unused configuration possibilities have been purged from this file. Please refer to http://wiki.apache.org/solr/SchemaXml, as well as the default schema file included with Solr --> <uniqueKey>id</uniqueKey> <fields> <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/> <field name="format" type="string" stored="true" indexed="true" multiValued="true" /> <field name="_version_" type="long" indexed="true" stored="true"/> <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/> <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/> <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/> <!-- NOTE: not all possible Solr field types are represented in the dynamic fields --> <!-- text (_t...) --> <dynamicField name="*_ti" type="text" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_tim" type="text" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_ts" type="text" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_tsm" type="text" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_tsi" type="text" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_tsim" type="text" stored="true" indexed="true" multiValued="true"/> <dynamicField name="*_tiv" type="text" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <!-- English text (_te...) --> <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_tes" type="text_en" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_tesm" type="text_en" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_tesi" type="text_en" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_tesim" type="text_en" stored="true" indexed="true" multiValued="true"/> <dynamicField name="*_teiv" type="text_en" stored="false" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/> <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> <!-- string (_s...) --> <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_ss" type="string" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_ssm" type="string" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/> <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/> <!-- integer (_i...) --> <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_is" type="int" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/> <!-- IntegerPointField (_it...) (for faster range queries) --> <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/> <!-- date (_dt...) --> <!-- The format for this date field is of the form 1995-12-31T23:59:59Z Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z --> <dynamicField name="*_dti" type="date" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_dtim" type="date" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_dts" type="date" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/> <!-- DatePointField (_dtt...) (for faster range queries) --> <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/> <!-- long (_l...) --> <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_ls" type="long" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/> <!-- LongPointField (_lt...) (for faster range queries) --> <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/> <!-- double (_db...) --> <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_dbs" type="double" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/> <!-- DoublePointField (_dbt...) (for faster range queries) --> <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/> <!-- float (_f...) --> <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_fs" type="float" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/> <!-- FloatPointField (_ft...) (for faster range queries) --> <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/> <!-- boolean (_b...) --> <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/> <!-- Type used to index the lat and lon components for the "location" FieldType --> <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" /> <!-- location (_ll...) --> <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/> <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/> <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/> <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/> <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/> <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/> <dynamicField name="*_srpt" type="location_rpt" stored="true" indexed="true" multiValued="true" /> <dynamicField name="*_bbox" type="bbox" stored="true" indexed="true" /> <!-- suggest and spelling --> <dynamicField name="*spell" type="textSpell" indexed="true" stored="false" multiValued="true" /> <dynamicField name="*suggest" type="textSuggest" indexed="true" stored="false" multiValued="true" /> <!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work --> <field name="all_text_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/> </fields> <!-- Above, multiple source fields are copied to the [text] field. Another way to map multiple source fields to the same destination field is to use the dynamic field syntax. copyField also supports a maxChars to copy setting. --> <copyField source="*_tsim" dest="all_text_timv" maxChars="3000"/> <copyField source="*_tesim" dest="all_text_timv" maxChars="3000"/> <copyField source="*_ssim" dest="all_text_timv" maxChars="3000"/> <copyField source="*_si" dest="all_text_timv" maxChars="3000"/> <copyField source="*_tsim" dest="suggest"/> <copyField source="*_tesim" dest="suggest"/> <copyField source="*_ssim" dest="suggest"/> <copyField source="*_si" dest="suggest"/> <!-- TODO: Look into if these are actually being used. --> <copyField source="*_tsim" dest="spell"/> <copyField source="*_tesim" dest="spell"/> <copyField source="*_ssim" dest="spell"/> <copyField source="*_si" dest="spell"/> <copyField source="author_tsim" dest="author_spell"/> <copyField source="subject_ssim" dest="subject_spell"/> <copyField source="title_tsim" dest="title_spell"/> <types> <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/> <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/> <!-- Default numeric field types. --> <fieldType name="int" class="solr.IntPointField" docValues="true"/> <fieldType name="float" class="solr.FloatPointField" docValues="true"/> <fieldType name="long" class="solr.LongPointField" docValues="true"/> <fieldType name="double" class="solr.DoublePointField" docValues="true"/> <!-- PointField numeric field types for faster range queries --> <fieldType name="tint" class="solr.IntPointField" docValues="true"/> <fieldType name="tfloat" class="solr.FloatPointField" docValues="true"/> <fieldType name="tlong" class="solr.LongPointField" docValues="true"/> <fieldType name="tdouble" class="solr.DoublePointField" docValues="true"/> <!-- The format for this date field is of the form 1995-12-31T23:59:59Z Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z --> <fieldType name="date" class="solr.DatePointField" docValues="true"/> <!-- A PointField based date field for faster date range queries and date faceting. --> <fieldType name="tdate" class="solr.DatePointField" docValues="true"/> <!-- This point type indexes the coordinates as separate fields (subFields) If subFieldType is defined, it references a type, and a dynamic field definition is created matching *___<typename>. Alternately, if subFieldSuffix is defined, that is used to create the subFields. Example: if subFieldType="double", then the coordinates would be indexed in fields myloc_0___double,myloc_1___double. Example: if subFieldSuffix="_d" then the coordinates would be indexed in fields myloc_0_d,myloc_1_d The subFields are an implementation detail of the fieldType, and end users normally should not need to know about them. --> <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/> <!-- A specialized field for geospatial search filters and distance sorting. --> <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/> <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes. For more information about this and other Spatial fields new to Solr 4, see: http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4 --> <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/> <field name="bbox" type="bbox" /> <fieldType name="bbox" class="solr.BBoxField" geo="true" distanceUnits="kilometers" numberType="_bbox_coord" storeSubFields="false"/> <fieldType name="_bbox_coord" class="solr.DoublePointField" docValues="true" stored="false"/> <fieldType name="text" class="solr.TextField" omitNorms="false"> <analyzer> <tokenizer class="solr.ICUTokenizerFactory"/> <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed --> <filter class="solr.TrimFilterFactory"/> </analyzer> </fieldType> <!-- A text field that only splits on whitespace for exact matching of words --> <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.TrimFilterFactory"/> </analyzer> </fieldType> <!-- single token analyzed text, for sorting. Punctuation is significant. --> <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory" /> <filter class="solr.ICUFoldingFilterFactory"/> <filter class="solr.TrimFilterFactory" /> </analyzer> </fieldtype> <!-- A text field with defaults appropriate for English --> <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.ICUTokenizerFactory"/> <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed --> <filter class="solr.EnglishPossessiveFilterFactory"/> <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: --> <filter class="solr.EnglishMinimalStemFilterFactory"/> <!-- <filter class="solr.PorterStemFilterFactory"/> --> <filter class="solr.TrimFilterFactory"/> </analyzer> </fieldType> <!-- A text field with defaults appropriate for English an NGrams --> <fieldType name="text_en_ng" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.ICUTokenizerFactory"/> <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed --> <filter class="solr.EnglishPossessiveFilterFactory"/> <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: --> <filter class="solr.EnglishMinimalStemFilterFactory"/> <filter class="solr.TrimFilterFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" /> </analyzer> <analyzer type="index"> <tokenizer class="solr.ICUTokenizerFactory"/> <filter class="solr.ICUFoldingFilterFactory"/> <!-- NFKC, case folding, diacritics removed --> <filter class="solr.EnglishPossessiveFilterFactory"/> <!-- EnglishMinimalStemFilterFactory is less aggressive than PorterStemFilterFactory: --> <filter class="solr.EnglishMinimalStemFilterFactory"/> <filter class="solr.TrimFilterFactory"/> </analyzer> </fieldType> <fieldType name="pid_text" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> </analyzer> </fieldType> <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" > <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <fieldType name="textSuggest" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <!-- queries for paths match documents at that path, or in descendent paths --> <fieldType name="descendent_path" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.KeywordTokenizerFactory" /> </analyzer> </fieldType> <!-- queries for paths match documents at that path, or in ancestor paths --> <fieldType name="ancestor_path" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.KeywordTokenizerFactory" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" /> </analyzer> </fieldType> </types>
</schema>