<?xml version="1.0" encoding="UTF-8" ?>
<schema name="wpdata" version="1.1">
    <types>
        <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="integer" class="solr.IntField" omitNorms="true"/>
        <fieldType name="long" class="solr.LongField" omitNorms="true"/>
        <fieldType name="float" class="solr.FloatField" omitNorms="true"/>
        <fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
        <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="random" class="solr.RandomSortField" indexed="true" />

        <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            </analyzer>
        </fieldType>

		<fieldType name="text_lws" class="solr.TextField" positionIncrementGap="100">
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
				<filter class="solr.LowerCaseFilterFactory"/>
            </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.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </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.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </analyzer>
        </fieldType>

        <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </analyzer>
        </fieldType>

        <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
            <analyzer>
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </analyzer>
        </fieldType>

        <fieldType name="alphaOnlySort" 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-z])" replacement="" replace="all"/>
            </analyzer>
        </fieldType>

        <fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" /> 
    </types>


    <fields>
        <field name="id" type="string" indexed="true" stored="true" required="true" /> 

		<field name="blogid" type="string" indexed="true" stored="true"/>
		<field name="blogdomain" type="string" indexed="true" stored="true"/>
		<field name="blogpath" type="string" indexed="true" stored="true"/>
		<field name="wp" type="string" indexed="true" stored="true"/>
		
		<field name="permalink" type="string" indexed="true" stored="true"/> 
        <field name="title" type="text_lws" indexed="true" stored="true"/>
		<field name="content" type="text" indexed="true" stored="true"/>
		<field name="numcomments" type="integer" indexed="true" stored="true"/>
		<field name="comments" type="text" indexed="true" stored="true" multiValued="true"/>

        <field name="categories" type="string" indexed="true" stored="true" multiValued="true"/>
		<field name="categoriessrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
		
        <field name="tags" type="string" indexed="true" stored="true" multiValued="true"/>
		<field name="tagssrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
		
        <field name="author" type="string" indexed="true" stored="true"/>
		<field name="type" type="string" indexed="true" stored="true"/>

		<!-- Date fields used for sorting and searching -->
		<field name="date" type="date" indexed="true" stored="false"/>
		<field name="modified" type="date" indexed="true" stored="false"/>
		
		<!-- Fields used to display the date -->
		<field name="displaydate" type="string" indexed="false" stored="true"/>
		<field name="displaymodified" type="string" indexed="false" stored="true"/>
		
		<!-- For spell checking, did you mean? -->
		<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>
		
        <!-- composite field -->
        <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>

        <!-- dynamic fields -->
        <dynamicField name="*_str"  type="string"  indexed="true"  stored="true" multiValued="true"/>
        <dynamicField name="*_srch"  type="text_lws"  indexed="true"  stored="false" multiValued="true"/>
        <dynamicField name="*_taxonomy" type="string" indexed="true" stored="true" multiValued="true"/>
        
        <dynamicField name="*_i"  type="sint"    indexed="true"  stored="true"/>
        <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
        <dynamicField name="*_l"  type="slong"   indexed="true"  stored="true"/>
        <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
        <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
        <dynamicField name="*_f"  type="sfloat"  indexed="true"  stored="true"/>
        <dynamicField name="*_d"  type="sdouble" indexed="true"  stored="true"/>
        <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>
        <dynamicField name="random*" type="random" />
     </fields>

     <uniqueKey>id</uniqueKey>
     <defaultSearchField>text</defaultSearchField>
     <solrQueryParser defaultOperator="OR"/>
     <copyField source="title" dest="text"/>
     <copyField source="tags" dest="text"/>
     <copyField source="categories" dest="text"/>
     <copyField source="content" dest="text"/>
     <copyField source="tags" dest="tagssrch"/>
     <copyField source="categories" dest="categoriessrch"/>
     <copyField source="title" dest="spell"/>
	 <copyField source="content" dest="spell"/>
	 <copyField source="author" dest="spell"/>
</schema>
