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