我在我的SolR 1.3项目中实现了拼写检查searchComponent,它的工作原理。
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">DRETITLE</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<float name="accuracy">0.5</float>
<int name="minPrefix">1</int>
<int name="minQueryLength">3</int>
</lst>
</searchComponent>
但建议不能按预期工作......例如:
如果我搜索 bosa (错误的字词),预期的建议将是 bossa (加泰罗尼亚语),但SpellCheck没有找到任何建议。
如果我搜索 acsa ,预期的建议将是 casa ,但SpellCheck没有找到任何建议。
此配置适用于基本建议,但仅限于此。例如:
如果我搜索 treballaior 它会返回 treballador ,所以没关系。但如果我搜索 trballaior ,它会返回 ballador 。那么,字母 t 和 r 在哪里?最正确的建议是 treballador 。
听起来我的SpellCheck组件不会考虑以错误的顺序写单词的可能性。 我尝试了不同的配置,但它的工作方式相同。
是配置问题还是因为我使用的版本太旧了?