[英]Case insensitive spell check in Solr
我们如何使Solr中的拼写检查器忽略大小写? 对于查询“ Lether”,我得到正确的建议“皮革”。 但是,如果查询是“ lether”,我会得到一些不同的建议,例如“ lethel”,这是不正确的。
我尝试了本博文中提到的配置,但似乎没有用。
我将配置复制到此处以供参考:
<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" />
有什么明显的我想念的东西吗?
在cse中,您还不需要在spellchecker
组件中使用小fieldType
滤器指定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
命令上重建您的拼写检查索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.