繁体   English   中英

Solr中不区分大小写的拼写检查

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM