从可用字段类型创建自定义字段类型
在转向示例之前,让我们获得一些理论知识。分析器 ,标记 器和过滤器中使用了三个重要的术语。要创建此类自定义字段,你需要创建一个带有一个标记生成器和一个或多个过滤器的分析器。如前所述在这里 ,你可以为每个分析仪只有一个分词器,但有一些方法可以克服这个限制。
<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" replace="all" replacement="" pattern="([^a-z])"/>
</analyzer>
</fieldType>
另一个例子:
<fieldType name="lowercase_text" class="solr.TextField" positionIncrementGap="150">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
还有一个描述示例:
<fieldType name="text_stem" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"/>
</analyzer>
</fieldType>
此示例以 Solr 的标准标记化器开始,该标记化器将字段的文本分解为标记。然后这些令牌通过 Solr 的标准过滤器,从过程中删除点,并执行一些其他常见操作。然后将所有标记设置为小写,这将有助于在查询时进行不区分大小写的匹配。上例中的最后一个过滤器是使用 Porter 词干分析算法的词干分析器。词干分析器基本上是一组映射规则,它将单词的各种形式映射回它们派生的基础或词干。例如,在英语中,拥抱,拥抱和拥抱这些词语都是词干拥抱的形式。词干分析器将用拥抱替换所有这些术语,这将被索引。这意味着查询“
此类自定义字段的示例用法:
<field name="keywords" type="text_stem" indexed="true" stored="true" />
可用的 tokenizer 类型列表:tokenizer 类型列表
可用过滤器类型列表:过滤器类型列表