使用Solr和Hybris进行拼写检查

问题描述

我正在使用带有hybris 6.7的solr 7.7.2。我正在尝试对拼写错误的单词进行正确的拼写检查。我能够在某种程度上实现它,但是在某些情况下它不起作用。例如。在搜索 apple wath 时,我得到了 apple with 作为拼写检查,而不是 apple watch 。这背后的原因之一是我的数据库中的name属性同时包含“ apple watch”和“ apple with”。
其他一些例子
拼写错误的单词-有关我的提示
suop-商店(应该是“ suop”)
Aple手表-苹果水(应该是“ Apple Watch”)
三星note 10 lite-三星note 10升

solrconfig.xml

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">text_spell</str>
<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.5</float>
<int name="maxEdits">2</int>
<int name="minPrefix">0</int>
<int name="maxinspections">5</int>
<int name="minQueryLength">2</int>
</lst>
</searchComponent>
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="df">fulltext</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>

schema.xml

<fieldType name="text_spell" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
</fieldType>

我尝试了许多其他配置,包括整理,但是这个问题在多字搜索中仍然存在。

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...