1

我们如何在 solr 中进行拼写检查以忽略大小写?对于查询:“皮革”,我得到正确的建议“皮革”。但是,如果查询是“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" />

我有什么明显的遗漏吗?

4

1 回答 1

0

在 cse 你还没有,在你的spellchecker组件中,你必须fieldType使用小写过滤器指定 a,例如,

<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

于 2011-08-25T08:26:35.367 回答