我们遇到的问题是,我们获得技术上正确但不适合输入术语的拼写检查结果。
例如,用户搜索"呼吸机"并且拼写检查器返回"振动器"作为更正的术语。
我们可以删除价值"振动器"从可能的结果,但如果有人拼错"振动器"我们应该返回更正的术语。
是否可以排除特定的映射(例如"呼吸机">"振动器")?
当前配置:
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>
答案 0 :(得分:0)
你可以像索引那样排除“频率低于X”的术语,等等。但是,如果你想“仅在为期限Y提供建议时排除术语X”,那么不,你不能。