2011-08-24 55 views
1

如何让solr中的拼写检查程序忽略大小写?对于查询:“Lether”,我得到建议“皮革”这是正确的。但如果查询是“lether”,我会得到一些不同的建议,如“lethel”,这是不正确的。Solr中对大小写不敏感的拼写检查

我尝试了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

嘿,你有你的答案的解决方案。我陷入了同样的状况。请帮帮我。 – iNikkz

回答

0

在CSE你还没有,在你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> 

其次,还发现该重建的optimize你的拼写检查指数buildOnOptimize命令。

+0

是的,我已经这么做了。这里是我的配置,我使用哪个不工作:内联' 默认 spelltext 拼写检查 频率 0.8 ' – qwerty