环境: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>
答案 0 :(得分:1)
是的,只要您使用spellcheck=true
运行选择,结果就会出现在同一请求中。
您可以tune when you want the spellchecker to be invoked为您的请求添加一些参数:
<强> spellcheck.maxResultsForSuggest 强>
请求可以返回的最大匹配数,以便生成拼写建议并设置&#34; correctSpelled&#34;元素到&#34;假&#34;。
<强> spellcheck.onlyMorePopular 强>
限制对比原始查询更受欢迎的查询的拼写检查响应。