您需要更改可以使用solr.EdgeNGramFilterFactory生成令牌的字段的fieldType
借助它,您可以生成tokes,例如,abhijit将生成abh、abhi、abhij、abhiji、abhijit,因此将为您的查询匹配所有这些组合。
使用第二个EdgeNGramFilterFactory,它将生成令牌
jit,ijit,hijit,bhijit,abhirit,iji,hiji,bhiji等等。。。
尝试以下字段类型
<fieldType name="text_reference" class="solr.TextField" sortMissingLast="true" omitNorms="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>