我正在尝试将拼写检查组件安装到我的Solr安装中。我通过运行内置于默认配置中的“/ spell”请求处理程序确认它工作正常。
但是当我尝试在“/ select”处理程序下安装此组件时,系统会挂起。查询停止返回,系统不会ping等等。
任何其他处理程序名称都可以。我可以调用处理程序“/ query”或“/ gumby” - 它运行良好并返回结果和拼写检查建议。但是,如果我采用其他工作处理程序配置并将其重命名为“/ select”,则系统会挂起。
为什么会这样? “/ select”处理程序名称有什么神奇之处?
(一种理论:拼写检查是否会调用“/ select”处理程序?如果是这样,那么这会设置一个无限循环吗?但是当我注释掉“/ select”时,这不会打破搜索吗?)
更新:这与“整理”有关。如果我将其关闭(“spellcheck.collate = false”),那么它可以正常工作。我怀疑排序规则是对数据库运行备用拼写搜索以获取计数,因此递归调用“/ select”。
答案 0 :(得分:0)
似乎是solr中的一个错误,如果使用了排序规则,默认处理程序必须将maxCollationTries设置为0。
您可以将另一个请求处理程序设为默认值(例如
<requestHandler name="/select0" class="solr.SearchHandler" default="true">
)<str name="spellcheck.maxCollationTries">0</str>
或不使用该处理程序的collate,并且仍然使用/ select并将maxCollationTries设置为另一个值。