如何排除特定的Solr拼写检查结果

时间:2017-06-28 09:30:00

标签: solr spell-checking

我们遇到的问题是,我们获得技术上正确但不适合输入术语的拼写检查结果。

例如,用户搜索"呼吸机"并且拼写检查器返回"振动器"作为更正的术语。

我们可以删除价值"振动器"从可能的结果,但如果有人拼错"振动器"我们应该返回更正的术语。

是否可以排除特定的映射(例如"呼吸机">"振动器")?

当前配置:

solrconfig.xml中:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    <str name="queryAnalyzerFieldType">text_spell</str>
    <lst name="spellchecker">
        <str name="name">de</str>
        <str name="field">spellcheck_de</str>
        <str name="buildOnCommit">true</str>
        <str name="buildOnOptimize">true</str>
    </lst>

来自schema.xml的字段配置:

<fieldType name="text_spell_de" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.TrimFilterFactory" />
        <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
    </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

你可以像索引那样排除“频率低于X”的术语,等等。但是,如果你想“仅在为期限Y提供建议时排除术语X”,那么不,你不能。