Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SOLR是否将拼写检查添加到文档列表?_Solr - Fatal编程技术网

SOLR是否将拼写检查添加到文档列表?

SOLR是否将拼写检查添加到文档列表?,solr,Solr,我看到很多教程向您展示了如何使用solr实现“Doy you mean”功能,其中搜索“ance”可能会返回“Doy you mean痤疮?” 我们能让solr立即自动更正和搜索,而不是简单地建议正确的拼写吗?有点像谷歌有时会返回“显示痤疮结果而不是痤疮结果” 这将如何实施?可以在一个请求中完成吗 编辑:我当前在solrconfig.xml中的尝试 <requestHandler name="/select" class="solr.SearchHandler"> <lst n

我看到很多教程向您展示了如何使用solr实现“Doy you mean”功能,其中搜索“ance”可能会返回“Doy you mean痤疮?”

我们能让solr立即自动更正和搜索,而不是简单地建议正确的拼写吗?有点像谷歌有时会返回“显示痤疮结果而不是痤疮结果”

这将如何实施?可以在一个请求中完成吗

编辑:我当前在solrconfig.xml中的尝试

<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
   <str name="echoParams">explicit</str>
   <int name="rows">10</int>
   <str name="df">text</str>


    <str name="spellcheck.collate">true</str>
    <str name="spellcheck.collateExtendedResults">true</str> 
    <str name="spellcheck.maxCollationTries">5</str>
    <str name="spellcheck.maxCollations">3</str>

    <str name="spellcheck">on</str>


 </lst>


<arr name="last-components">
    <str>spellcheck</str>
</arr>

</requestHandler>
如您所见,它正在返回拼写更正。但我希望solr也能根据这些建议提供搜索结果。

是的,它被称为“排序规则”查询 您需要设置请求处理程序以进行以下设置:

<str name="spellcheck.collate">true</str> 
<str name="spellcheck.collateExtendedResults">true</str> 
<str name="spellcheck.maxCollationTries">5</str>
<str name="spellcheck.maxCollations">3</str>
true
真的
5.
3.
连同

<str name="spellcheck">on</str>
on
您可以在此处阅读:

编辑:


您需要在后台执行collationQuery,然后根据您获得的排序规则单词“hits”向用户显示一条信息性消息,说明“搜索痤疮而不是ance”。排序规则“允许”您这样做,以便您可以在用建议的查询替换用户查询并“在幕后”重新执行之前运行一些逻辑。您不想让solr一直运行建议查询。。。即使用户是对的。。。您需要查看用户查询的结果数是否很低(比如2次点击),排序规则的结果数是否很高(比如200次),这意味着用户查询有问题,您需要在“幕后”进行判断调用,并使用大多数结果重新运行排序规则查询。阅读上面的文档链接

此实现仅返回拼写更正。我想使用这些拼写更正搜索我的索引,并返回实际结果,而不仅仅是拼写建议。您如何“幕后”重新运行排序规则查询,是通过API还是配置?你能解释一下吗?
<str name="spellcheck">on</str>