从可用字段类型创建自定义字段类型

在转向示例之前,让我们获得一些理论知识。分析器标记 过滤器中使用了三个重要的术语。要创建此类自定义字段,你需要创建一个带有一个标记生成器和一个或多个过滤器的分析器。如前所述在这里 ,你可以为每个分析仪只有一个分词器,但有一些方法可以克服这个限制。

<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 类型列表

可用过滤器类型列表:过滤器类型列表