如何根据需要的建议调整Apache SOLR拼写检查?

问题描述

环境:SAP Hybris 6.7.0.0,Apache Solr 7.7.2

我正在使用solr为独立的电子商务平台提供动力。在这种情况下,我们的产品数据为Solr dB。例如:productName_text,BrandName_string等。

我使用以下当前配置创建了拼写检查组件:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
        <lst name="spellchecker">
            <str name="name">en</str>
            <str name="classname">solr.DirectSolrspellChecker</str>
            <str name="field">spellcheck_en</str>
            <str name="distanceMeasure">internal</str>
            <float name="accuracy">0.7</float>
            <int name="maxEdits">2</int>
            <int name="minPrefix">0</int>
            <int name="maxinspections">5</int>
            <int name="minQueryLength">2</int>
        </lst>
        </searchComponent>
    
    

并在/select请求处理程序上启用了拼写检查

<str name="spellcheck">true</str>
            <str name="spellcheck.dictionary">default</str>
            <str name="spellcheck.onlyMorePopular">true</str>
            <str name="spellcheck.count">5</str>
            <str name="spellcheck.collate">true</str>
            
        
        and spellcheck is configured  dynamically for the a single field. Suppose:

productName_text

包含典型电子产品或其包装中的产品名称。例如:

“ Apple Watch Series 2 38毫米不锈钢表壳,配深蓝色现代带扣中号”
“ A.O. Smith X4 RO净水器(白色)”

如果我们将“ wath”拼写为“ watch”,则会得到建议“ water”。或将“汤料制作者”拼写为“汤制作者”,我们得到“商店制作者”。如何根据我的数据调整拼写检查器?还有其他解决行为异常的方法

尝试使用[1]:https://cwiki.apache.org/confluence/display/SOLR/SpellCheckComponent中的所有拼写检查配置,但找不到任何可靠的解决方案。

尝试实现WordBreakSolrspellChecker,它似乎不会改变任何结果

使用了“ spellcheck.collat​​e”和其他属性,但是它返回没有搜索结果的建议。

我观察到,拼写检查会受到多值字段的严重影响(?)

通常,如何处理应该给出错误建议或不应该基于用户偏好的建议?是否可以处理两个不同的拼写检查组件,如果“ DirectSolrspellChecker”没有给出所需的建议,我可以切换到“ FilebasedSpellChecker”吗?是否可以维护.txt文件来跟踪所有需要调整的术语,或者在SAP hybris中都相同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)