Location: PHPKode > projects > VuFind > vufind-1.0.1/solr/biblio/conf/schema.xml
<?xml version="1.0" ?>
<schema name="VuFind Bibliographic Index" version="1.2">
  <types>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="textFacet" class="solr.TextField" sortMissingLast="true" omitNorms="true">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <!-- strip trailing punctuation from facets: -->
        <filter class="solr.PatternReplaceFilterFactory" pattern="(?&lt;!\b[A-Z])[.\s]*$" replacement="" replace="first"/>
      </analyzer>
    </fieldType>
    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        <filter class="schema.UnicodeNormalizationFilterFactory" version="icu4j" composed="false" remove_diacritics="true" remove_modifiers="true" fold="true"/>
        <filter class="solr.ISOLatin1AccentFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        <filter class="schema.UnicodeNormalizationFilterFactory" version="icu4j" composed="false" remove_diacritics="true" remove_modifiers="true" fold="true"/>
        <filter class="solr.ISOLatin1AccentFilterFactory"/>
      </analyzer>
    </fieldType>
    <!-- Text Field without Stemming and Synonyms -->
    <fieldType name="textProper" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="schema.UnicodeNormalizationFilterFactory" version="icu4j" composed="false" remove_diacritics="true" remove_modifiers="true" fold="true"/>
        <filter class="solr.ISOLatin1AccentFilterFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="schema.UnicodeNormalizationFilterFactory" version="icu4j" composed="false" remove_diacritics="true" remove_modifiers="true" fold="true"/>
        <filter class="solr.ISOLatin1AccentFilterFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>
    <!-- Basic Text Field for use with Spell Correction -->
    <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="schema.UnicodeNormalizationFilterFactory" version="icu4j" composed="false" remove_diacritics="true" remove_modifiers="true" fold="true"/>
        <filter class="solr.ISOLatin1AccentFilterFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>
    <!-- More advanced spell checking field. -->
    <fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="false"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="false"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>
    <!-- Text Field for Normalized ISBN/ISSN Numbers - take first chunk of text
         prior to whitespace, force to lowercase, strip non-ISBN/ISSN characters,
         omit results that are empty after stripping. -->
    <fieldType name="isn" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.PatternTokenizerFactory" pattern="^(\S*)\s*.*$" group="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.PatternReplaceFilterFactory" pattern="[^0-9x]" replacement="" replace="all"/>
        <filter class="solr.LengthFilterFactory" min="1" max="100" />
      </analyzer>
    </fieldType>
  </types>
 <fields>
   <!-- Core Fields  -->
   <field name="id" type="string" indexed="true" stored="true"/>
   <field name="fullrecord" type="string" indexed="false" stored="true"/>
   <field name="marc_error" type="string" indexed="false" stored="true" multiValued="true"/>
   <field name="allfields" type="text" indexed="true" stored="false"/>
   <field name="spelling" type="textSpell" indexed="true" stored="true"/>
   <field name="spellingShingle" type="textSpellShingle" indexed="true" stored="true" multiValued="true"/>
   <!-- Institutional Fields -->
   <field name="institution" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="collection" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="building" type="string" indexed="true" stored="true" multiValued="true"/>
   <!-- Generic Fields -->
   <field name="language" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="format" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="author" type="textProper" indexed="true" stored="true" termVectors="true"/>
   <field name="author-letter" type="string" indexed="true" stored="true"/>
   <field name="authorStr" type="textFacet" indexed="true" stored="false"/>
   <field name="auth_author" type="textProper" indexed="true" stored="true"/>
   <field name="auth_authorStr" type="string" indexed="true" stored="true"/>
   <field name="title" type="text" indexed="true" stored="true"/>
   <field name="title_sort" type="string" indexed="true" stored="true"/>
   <field name="title_sub" type="text" indexed="true" stored="true"/>
   <field name="title_short" type="text" indexed="true" stored="true"/>
   <field name="title_full" type="text" indexed="true" stored="true"/>
   <field name="title_fullStr" type="string" indexed="true" stored="true"/>
   <field name="title_auth" type="text" indexed="true" stored="true"/>
   <field name="physical" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="publisher" type="textProper" indexed="true" stored="true" multiValued="true"/>
   <field name="publisherStr" type="string" indexed="true" stored="false" multiValued="true"/>
   <field name="publishDate" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="edition" type="string" indexed="true" stored="true"/>
   <field name="description" type="text" indexed="true" stored="true"/>
   <field name="contents" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="url" type="string" indexed="false" stored="true" multiValued="true"/>
   <field name="thumbnail" type="string" indexed="false" stored="true"/>
   <!-- Catalog Specific Fields -->
   <field name="lccn" type="string" indexed="true" stored="true"/>
   <field name="ctrlnum" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="isbn" type="isn" indexed="true" stored="true" multiValued="true"/>
   <field name="issn" type="isn" indexed="true" stored="true" multiValued="true"/>
   <field name="callnumber" type="string" indexed="true" stored="true"/>
   <field name="callnumber-a" type="string" indexed="true" stored="true"/>
   <field name="callnumber-first" type="string" indexed="true" stored="true"/>
   <field name="callnumber-first-code" type="string" indexed="true" stored="true"/>
   <field name="callnumber-subject" type="string" indexed="true" stored="true"/>
   <field name="callnumber-subject-code" type="string" indexed="true" stored="true"/>
   <field name="callnumber-label" type="string" indexed="true" stored="true"/>
   <field name="dewey-hundreds" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="dewey-tens" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="dewey-ones" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="dewey-full" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="dewey-sort" type="string" indexed="true" stored="true" />
   <field name="author2" type="textProper" indexed="true" stored="true" multiValued="true"/>
   <field name="author2Str" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="author2-role" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="auth_author2" type="textProper" indexed="true" stored="true" multiValued="true"/>
   <field name="auth_author2Str" type="string" indexed="true" stored="false" multiValued="true"/>
   <field name="author_additional" type="textProper" indexed="true" stored="true" multiValued="true"/>
   <field name="author_additionalStr" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="title_alt" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="title_old" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="title_new" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="dateSpan" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="series" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="series2" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="topic" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="topic_facet" type="textFacet" indexed="true" stored="true" multiValued="true"/>
   <field name="genre" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="genre_facet" type="textFacet" indexed="true" stored="true" multiValued="true"/>
   <field name="geographic" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="geographic_facet" type="textFacet" indexed="true" stored="true" multiValued="true"/>
   <field name="era" type="textFacet" indexed="true" stored="true" multiValued="true"/>
   <field name="illustrated" type="string" indexed="true" stored="true" multiValued="false"/>
   <!-- Used for loading correct record driver -->
   <field name="recordtype" type="string" indexed="false" stored="true"/>
 </fields>
 <uniqueKey>id</uniqueKey>
 <defaultSearchField>allfields</defaultSearchField>
 <!-- CopyFields for Spelling -->
 <!-- ** Basic, single word spelling -->
 <copyField source="allfields" dest="spelling"/>
 <!-- ** Complex, Shingle spelling -->
 <copyField source="author"   dest="spellingShingle"/>
 <copyField source="title"    dest="spellingShingle"/>
 <copyField source="contents" dest="spellingShingle"/>
 <copyField source="series"   dest="spellingShingle"/>
 <copyField source="topic"    dest="spellingShingle"/>
 <!-- CopyFields for Faceting on Text -->
 <copyField source="title_full" dest="title_fullStr"/>
 <copyField source="author" dest="authorStr"/>
 <copyField source="auth_author" dest="auth_authorStr"/>
 <copyField source="author2" dest="author2Str"/>
 <copyField source="auth_author2" dest="auth_author2Str"/>
 <copyField source="author_additional" dest="author_additionalStr"/>
 <copyField source="publisher" dest="publisherStr"/>
 <!-- Default Boolean Operator -->
 <solrQueryParser defaultOperator="AND"/>
</schema>
Return current item: VuFind