我想在我的索引中使用NGramFilterFactory并看到以下示例并尝试了它:
<fieldType name="NGramText" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="mark" type="NGramText" indexed="true" stored="true" omitNorms="true" omitTermFreqAndPositions="true"/>
该示例使用KeywordTokenizerFactory。使用它的目的是什么?从我的理解,它真的不做任何事,“整个 输入字符串保留为单个标记“它在网上说明。
是否有充分的理由使用KeywordTokenizerFactory制作Ngrams,或者我可以为WhitespaceTokenizerFactory更改它而不会减慢搜索速度吗?
并且在这个示例中,LowerCaseFilterFactory没有使字段小写可能与KeywordTokenizerFactory的连接有关吗?