附1:schema.xml


<?xml version="1.0" encoding="UTF-8" ?>

<schema name="example" version="1.5">

  <fields>


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

    <field name="path" type="text_ik" indexed="false" stored="true" multiValued="false"  termVector="true" />

    <field name="content" type="text_ik" indexed="false" stored="true" multiValued="false" termVector="true"/>

    <field name ="text" type ="text_ik" indexed ="true" stored ="false" multiValued ="true"/>

         <field name ="pinyin" type ="text_pinyin" indexed ="true" stored ="false" multiValued ="false"/>

         <field name ="py" type ="text_py" indexed ="true" stored ="false" multiValued ="false"/>

         <field name="spell" type="text_spell" indexed="true" stored="false" multiValued="false" termVector="true"/>

         <field name="_version_" type="long" indexed="true" stored="true"/>

    <dynamicField name="*_i" type="int" indexed="true" stored="true"/>

    <dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/>

         <dynamicField name="*_s" type="string" indexed="true" stored="true" />

    <dynamicField name="*_ss" type="string" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_l" type="long" indexed="true" stored="true"/>

    <dynamicField name="*_ls" type="long" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_t" type="text_general" indexed="true" stored="true"/>

    <dynamicField name="*_txt" type="text_general" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_en" type="text_en" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_b" type="boolean" indexed="true" stored="true"/>

    <dynamicField name="*_bs" type="boolean" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_f" type="float" indexed="true" stored="true"/>

    <dynamicField name="*_fs" type="float" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_d" type="double" indexed="true" stored="true"/>

    <dynamicField name="*_ds" type="double" indexed="true" stored="true" multiValued="true"/>


    <!-- Type used to index the lat and lon components for the "location" FieldType -->

    <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false"/>


    <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>

    <dynamicField name="*_dts" type="date" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="*_p" type="location" indexed="true" stored="true"/>


    <!-- some trie-coded dynamic fields for faster range queries -->

    <dynamicField name="*_ti" type="tint" indexed="true" stored="true"/>

    <dynamicField name="*_tl" type="tlong" indexed="true" stored="true"/>

    <dynamicField name="*_tf" type="tfloat" indexed="true" stored="true"/>

    <dynamicField name="*_td" type="tdouble" indexed="true" stored="true"/>

    <dynamicField name="*_tdt" type="tdate" indexed="true" stored="true"/>


    <dynamicField name="*_pi" type="pint" indexed="true" stored="true"/>

    <dynamicField name="*_c" type="currency" indexed="true" stored="true"/>


    <dynamicField name="ignored_*" type="ignored" multiValued="true"/>

    <dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>


    <dynamicField name="random_*" type="random"/>

  </fields>

  <uniqueKey>id</uniqueKey>

<copyField source="content" dest="spell"/>

<copyField source="content" dest="pinyin"/>

<copyField source="content" dest="py"/>

<copyField source="path" dest="text"/>

<copyField source="content" dest="text"/>

<copyField source="pinyin" dest="text"/>

<copyField source="py" dest="text"/>

<defaultSearchField>text</defaultSearchField>

  <types>

    <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>

    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>

    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>

    <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>

    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>

    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>

    <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>

    <fieldtype name="binary" class="solr.BinaryField"/>

    <fieldType name="pint" class="solr.IntField"/>

    <fieldType name="plong" class="solr.LongField"/>

    <fieldType name="pfloat" class="solr.FloatField"/>

    <fieldType name="pdouble" class="solr.DoubleField"/>

    <fieldType name="pdate" class="solr.DateField" sortMissingLast="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_general" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />

        <filter class="solr.LowerCaseFilterFactory"/>

      </analyzer>

      <analyzer type="query">

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />

        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>

        <filter class="solr.LowerCaseFilterFactory"/>

      </analyzer>

    </fieldType>

         <fieldType name="text_spell" class="solr.TextField" >

              <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

    </fieldType

         <fieldType name="text_ik" class="solr.TextField">

                   <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

         </fieldType>

    <fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">

      <analyzer type="index">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

      </analyzer>

      <analyzer type="query">

         <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

      </analyzer>

    </fieldType>

         <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">

      <analyzer type="index">

      <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

              <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

     <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />

                     <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />

      </analyzer>

      <analyzer type="query">

           <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

                         <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

        <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />

                     <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />

      </analyzer>

    </fieldType>


         <fieldType name="text_py" class="solr.TextField" positionIncrementGap="0">

      <analyzer type="index">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

                      <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

          <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" isFirstChar="true" minTermLenght="2" />      

      </analyzer>

      <analyzer type="query">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>

                      <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>

       <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" isFirstChar="true" minTermLenght="2" />

      </analyzer>

    </fieldType>


    <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <!-- in this example, we will only use synonyms at query time

        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>

        -->

        <!-- Case insensitive stop word removal.

          add enablePositionIncrements=true in both the index and query

          analyzers to leave a 'gap' for more accurate phrase queries.

        -->

        <filter class="solr.StopFilterFactory"

                ignoreCase="true"

                words="lang/stopwords_en.txt"

                enablePositionIncrements="true"

            />

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.EnglishPossessiveFilterFactory"/>

        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

        <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:

              <filter class="solr.EnglishMinimalStemFilterFactory"/>

        -->

        <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="lang/stopwords_en.txt"

                enablePositionIncrements="true"

            />

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.EnglishPossessiveFilterFactory"/>

        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

        <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:

              <filter class="solr.EnglishMinimalStemFilterFactory"/>

        -->

        <filter class="solr.PorterStemFilterFactory"/>

      </analyzer>

    </fieldType>

    <fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100"

               autoGeneratePhraseQueries="true">

      <analyzer type="index">

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

        <!-- in this example, we will only use synonyms at query time

        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>

        -->

        <!-- Case insensitive stop word removal.

          add enablePositionIncrements=true in both the index and query

          analyzers to leave a 'gap' for more accurate phrase queries.

        -->

        <filter class="solr.StopFilterFactory"

                ignoreCase="true"

                words="lang/stopwords_en.txt"

                enablePositionIncrements="true"

            />

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1"

                catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

        <filter class="solr.PorterStemFilterFactory"/>

      </analyzer>

      <analyzer type="query">

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>

        <filter class="solr.StopFilterFactory"

                ignoreCase="true"

                words="lang/stopwords_en.txt"

                enablePositionIncrements="true"

            />

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0"

                catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

        <filter class="solr.PorterStemFilterFactory"/>

      </analyzer>

    </fieldType>


    <fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100"

               autoGeneratePhraseQueries="true">

      <analyzer>

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>

        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1"

                catenateNumbers="1" catenateAll="0"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>

        <filter class="solr.EnglishMinimalStemFilterFactory"/>

        <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes

             possible with WordDelimiterFilter in conjuncton with stemming. -->

        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>

      </analyzer>

    </fieldType>


    <fieldType name="text_general_rev" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"

                maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>

      </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.txt" enablePositionIncrements="true"/>

        <filter class="solr.LowerCaseFilterFactory"/>

      </analyzer>

    </fieldType>



    <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">

      <analyzer>

        <!-- KeywordTokenizer does no actual tokenizing, so the entire

             input string is preserved as a single token

          -->

        <tokenizer class="solr.KeywordTokenizerFactory"/>

        <!-- The LowerCase TokenFilter does what you expect, which can be

             when you want your sorting to be case insensitive

          -->

        <filter class="solr.LowerCaseFilterFactory"/>

        <!-- The TrimFilter removes any leading or trailing whitespace -->

        <filter class="solr.TrimFilterFactory"/>

        <!-- The PatternReplaceFilter gives you the flexibility to use

             Java Regular expression to replace any sequence of characters

             matching a pattern with an arbitrary replacement string,

             which may include back references to portions of the original

             string matched by the pattern.


             See the Java Regular Expression documentation for more

             information on pattern and replacement string syntax.


             http://java.sun.com/j2se/1.6.0/docs/api/java/util/regex/package-summary.html

          -->

        <filter class="solr.PatternReplaceFilterFactory"

                pattern="([^a-z])" replacement="" replace="all"

            />

      </analyzer>

    </fieldType>


    <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>

      </analyzer>

    </fieldtype>


    <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField">

      <analyzer>

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

        <!--

        The DelimitedPayloadTokenFilter can put payloads on tokens... for example,

        a token of "foo|1.4"  would be indexed as "foo" with a payload of 1.4f

        Attributes of the DelimitedPayloadTokenFilterFactory :

         "delimiter" - a one character delimiter. Default is | (pipe)

          "encoder" - how to encode the following value into a playload

             float -> org.apache.lucene.analysis.payloads.FloatEncoder,

             integer -> o.a.l.a.p.IntegerEncoder

             identity -> o.a.l.a.p.IdentityEncoder

            Fully Qualified class name implementing PayloadEncoder, Encoder must have a no arg constructor.

         -->

        <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>

      </analyzer>

    </fieldtype>


    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.KeywordTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

      </analyzer>

    </fieldType>

    <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>

    <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>

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

    <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>


    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>

    <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"

               geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees"/>


    <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD"

               currencyConfig="currency.xml"/>



    <!-- some examples for different languages (generally ordered by ISO code) -->


    <!-- Arabic -->

    <fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <!-- for any non-arabic -->

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt"

                enablePositionIncrements="true"/>

        <!-- normalizes ﻯ to ﻱ, etc -->

        <filter class="solr.ArabicNormalizationFilterFactory"/>

        <filter class="solr.ArabicStemFilterFactory"/>

      </analyzer>

    </fieldType>


    <!-- Bulgarian -->

    <fieldType name="text_bg" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_bg.txt"

                enablePositionIncrements="true"/>

        <filter class="solr.BulgarianStemFilterFactory"/>

      </analyzer>

    </fieldType>


    <!-- Catalan -->

    <fieldType name="text_ca" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <!-- removes l', etc -->

        <filter class="solr.ElisionFilterFactory" ignoreCase="true" articles="lang/contractions_ca.txt"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ca.txt"

                enablePositionIncrements="true"/>

        <filter class="solr.SnowballPorterFilterFactory" language="Catalan"/>

      </analyzer>

    </fieldType>


    <!-- CJK bigram (see text_ja for a Japanese configuration using morphological analysis) -->

    <fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <!-- normalize width before bigram, as e.g. half-width dakuten combine  -->

        <filter class="solr.CJKWidthFilterFactory"/>

        <!-- for any non-CJK -->

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.CJKBigramFilterFactory"/>

      </analyzer>

    </fieldType>


    <!-- Czech -->

    <fieldType name="text_cz" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_cz.txt"

                enablePositionIncrements="true"/>

        <filter class="solr.CzechStemFilterFactory"/>

      </analyzer>

    </fieldType>


    <!-- Danish -->

    <fieldType name="text_da" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_da.txt" format="snowball"

                enablePositionIncrements="true"/>

        <filter class="solr.SnowballPorterFilterFactory" language="Danish"/>

      </analyzer>

    </fieldType>


    <!-- German -->

    <fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"

                enablePositionIncrements="true"/>

        <filter class="solr.GermanNormalizationFilterFactory"/>

        <filter class="solr.GermanLightStemFilterFactory"/>

        <!-- less aggressive: <filter class="solr.GermanMinimalStemFilterFactory"/> -->

        <!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="German2"/> -->

      </analyzer>

    </fieldType>


    <!-- Greek -->

    <fieldType name="text_el" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <!-- greek specific lowercase for sigma -->

        <filter class="solr.GreekLowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="false" words="lang/stopwords_el.txt"

                enablePositionIncrements="true"/>

        <filter class="solr.GreekStemFilterFactory"/>

      </analyzer>

    </fieldType>


    <!-- Spanish -->

    <fieldType name="text_es" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_es.txt" format="snowball"

                enablePositionIncrements="true"/>

        <filter class="solr.SpanishLightStemFilterFactory"/>

        <!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> -->

      </analyzer>

    </fieldType>


    <!-- Basque -->

    <fieldType name="text_eu" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_eu.txt"

                enablePositionIncrements="true"/>

        <filter class="solr.SnowballPorterFilterFactory" language="Basque"/>

      </analyzer>

    </fieldType>


    <!-- Persian -->

    <fieldType name="text_fa" class="solr.TextField" positionIncrementGap="100">

      <analyzer>

        <!-- for ZWNJ -->

        <charFilter class="solr.PersianCharFilterFactory"/>

        <tokenizer class="solr.StandardTokenizerFactory"/>

        <filter class="solr.LowerCaseFilterFactory"/>

        <filter class="solr.ArabicNormalizationFilterFactory"/>

        <filter class="solr.PersianNormalizationFilterFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_fa.txt"

                enablePositionIncrements="true"/>

      </analyzer>

    </fieldType>


    未完看下篇文章。


solr使用教程三【面试+工作】_lucene