從可用欄位型別建立自定義欄位型別

在轉向示例之前,讓我們獲得一些理論知識。分析器標記 過濾器中使用了三個重要的術語。要建立此類自定義欄位,你需要建立一個帶有一個標記生成器和一個或多個過濾器的分析器。如前所述在這裡 ,你可以為每個分析儀只有一個分詞器,但有一些方法可以克服這個限制。

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

可用過濾器型別列表:過濾器型別列表