在 schema.xml 中设置
fieldtype 这个标签来对字段类型进行一系列的控制,例如,分词器的选择,停用词(所有的停用词是放到了一个txt文件中),词干提取算法(例如使用 Porter Stemming 算法进行词干提取 (EnglishPorterFilterFactory)
)
标签结构说明(对text字段举例说明,这里对index索引和query查询建立了两个analyzer):
<fieldtype name="text" class="solr.TextField">
<analyzer type="index">
<tokenfilter class="......"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" />
<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.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>
这里的 tokenizer 用来生成token,就是要检索的词