【发布时间】:2014-07-15 08:50:45
【问题描述】:
我正在使用 solr 实现一个小型网络搜索引擎,并且正在使用 Suggester 组件 在查询表单中提供自动完成功能。
我可以从 solr 获得建议,但我也希望更正拼写错误。 我要问的和this question一样 但我使用了不同的处理程序配置(在将最终查询提交给 /select 之前,我将部分查询提交给单独的 /suggest 请求处理程序)。
来自 SolrConfig.xml:
<searchComponent class="solr.SpellCheckComponent" name="suggest">
<lst name="spellchecker">
<str name="name">suggest</str>
<!-- <str name="classname">solr.DirectSolrSpellChecker</str> -->
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str>
<str name="field">spelling</str> <!-- all the other fields are copied here -->
<float name="threshold">0.005</float>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
<str name="spellcheck">true</str>
<str name="spellcheck.extendedResults">true</str>
<str name="spellcheck.dictionary">suggest</str>
<!-- <str name="spellcheck.dictionary">default</str> -->
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.alternativeTermCount">5</str>
<str name="spellcheck.maxResultsForSuggest">5</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.maxCollations">5</str>
</lst>
<arr name="components">
<str>suggest</str>
<!-- <str>spellcheck</str> enabling this gives me error: dictionary not found: suggest (same for "default")-->
</arr>
</requestHandler>`
将建议器组件的类名更改为 directSolrSpellChecker 可以进行拼写检查,但不能提供建议。
我怎样才能让建议者也对拼写更正进行操作?
【问题讨论】:
标签: search solr autosuggest