我们如何在solr中使用拼写检查器来忽略大小写?对于查询:“Lether”,我得到的建议是“皮革”,这是正确的。但如果查询是“lether”,我会得到一些不同的建议,例如“lethel”,这是不正确的。
我尝试了this post中提到的配置,但它似乎没有用。
我在此处复制了我的配置以供参考:
<fieldType name="text_spell" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
<field name="spelltext" type="text_spell" indexed="true" stored="false" multiValued="true"/>
<field name="title" type="text" indexed="true" stored="true" multiValued="false" omitNorms="true"/>
<copyField source="title" dest="spelltext" />
我有什么明显的遗漏吗?
答案 0 :(得分:0)
您还没有在spellchecker
组件中使用小写过滤器指定fieldType
,例如,
<lst name="spellchecker">
<str name="name">spell</str>
<str name="field">text_spell</str>
<str name="spellcheckIndexDir">spell</str>
<str name="buildOnOptimize">true</str>
</lst>
其次,还要注意buildOnOptimize
在optimize
命令上重建拼写检查索引。