Solr条件拼写检查

时间:2018-01-29 03:57:11

标签: php solr spell-checking

环境:PHP,solr客户端,solr 7.2.1

如果我的/ select查询没有返回任何内容,我想运行我的拼写检查程序。我可以在一个查询中执行此操作吗?或者我必须在我的PHP中做出条件,

即时通讯使用基于索引的拼写检查程序:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    <str name="queryAnalyzerFieldType">text_general</str>
    <lst name="spellchecker">
      <str name="name">indexchecker</str>
      <str name="classname">solr.IndexBasedSpellChecker</str>
      <str name="spellcheckIndexDir">./spellchecker</str>
      <str name="field">pagetext</str>
      <str name="buildOnCommit">false</str>
      <!-- optional elements with defaults
      <str name="comparatorClass">freq</str> freq score(default)
      <str name="distanceMeasure">org.apache.lucene.search.spell.LevensteinDistance</str>
      <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>
      <str name="accuracy">0.5</str>
      -->
    </lst>
</searchComponent>

1 个答案:

答案 0 :(得分:1)

是的,只要您使用spellcheck=true运行选择,结果就会出现在同一请求中。

您可以tune when you want the spellchecker to be invoked为您的请求添加一些参数:

<强> spellcheck.maxResultsForSuggest

  

请求可以返回的最大匹配数,以便生成拼写建议并设置&#34; correctSpelled&#34;元素到&#34;假&#34;。

<强> spellcheck.onlyMorePopular

  

限制对比原始查询更受欢迎的查询的拼写检查响应。