SolrJ 没有设置请求处理程序
SolrJ not setting request handler
我有一个 SolrCloud 集合设置了多个请求处理程序,我想访问一个名为 /all
的非默认请求处理程序,它在 solrconfig.xml 中定义。当我从浏览器搜索时,此处理程序工作正常:
所有处理程序:
但是,当我使用 SolrQuery.setRequestHandler("all")
从 SolrJ 进行搜索时,我得到 0 个结果。 SolrJ 只是将 qt=/all
放入查询中,因此这些是同一查询的浏览器结果(SolrJ 得到相同的结果):
Select 与 qt=/all:
我们所有其他处理程序都观察到相同的行为。如果未定义处理程序,如果有前导 '/' 或默认为 select 如果没有前导 '/',Solr 将抛出不同的错误,因此我们知道这不是问题所在。
所以我的问题是,我怎样才能让它在 SolrJ 中工作? Select 在 solrconfig.xml 中有默认设置,它需要保留默认处理程序。找了一圈,好像是ID重复或者id字段没有保存的时候报错。但如果是这种情况,none 的搜索应该会起作用,所以我认为这里一定有其他事情发生。
确实"setRequestHandler"方法中可见的效果只是设置了qt参数。但这并不是 SolrJ 故事的结局。
处理SolrJ请求时,如果qt参数包含以正斜杠开头的字符串,SolrJ会将URL路径中的“/select”更改为该字符串中包含的值将请求发送到 Solr 之前的参数。它还会将 qt 参数按原样发送给 Solr,但参数本身通常无关紧要。
如果您在 qt 设置为“/all”的 /select 处理程序上向 Solr 发送实际请求,Solr 应该忽略 qt 参数——除非您在solrconfig.xml。不推荐这样做——因为这意味着您可以通过 /select 处理程序更改 索引,只需将 qt 设置为“/update”即可。
也有可能是较新的 Solr 中存在错误,其中使用带有 handleSelect="true" 的 qt 无法正常工作。我不确定这是否真的会被认为是一个错误。肯定不会推荐配置。
当您收到该异常时,solrconfig.xml 中的 handleSelect 设置是什么?
看起来问题刚刚自行解决。没有进行任何更改,但现在一切正常。我们认为可能在后台进行了一些索引编制,或者 Solr 本身发生了一些事情。我们可能永远不会知道,但我无法再重现这个问题,所以我想这行得通。
感谢所有试图提供帮助的人。
我有一个 SolrCloud 集合设置了多个请求处理程序,我想访问一个名为 /all
的非默认请求处理程序,它在 solrconfig.xml 中定义。当我从浏览器搜索时,此处理程序工作正常:
所有处理程序:
但是,当我使用 SolrQuery.setRequestHandler("all")
从 SolrJ 进行搜索时,我得到 0 个结果。 SolrJ 只是将 qt=/all
放入查询中,因此这些是同一查询的浏览器结果(SolrJ 得到相同的结果):
Select 与 qt=/all:
我们所有其他处理程序都观察到相同的行为。如果未定义处理程序,如果有前导 '/' 或默认为 select 如果没有前导 '/',Solr 将抛出不同的错误,因此我们知道这不是问题所在。
所以我的问题是,我怎样才能让它在 SolrJ 中工作? Select 在 solrconfig.xml 中有默认设置,它需要保留默认处理程序。找了一圈,好像是ID重复或者id字段没有保存的时候报错。但如果是这种情况,none 的搜索应该会起作用,所以我认为这里一定有其他事情发生。
确实"setRequestHandler"方法中可见的效果只是设置了qt参数。但这并不是 SolrJ 故事的结局。
处理SolrJ请求时,如果qt参数包含以正斜杠开头的字符串,SolrJ会将URL路径中的“/select”更改为该字符串中包含的值将请求发送到 Solr 之前的参数。它还会将 qt 参数按原样发送给 Solr,但参数本身通常无关紧要。
如果您在 qt 设置为“/all”的 /select 处理程序上向 Solr 发送实际请求,Solr 应该忽略 qt 参数——除非您在solrconfig.xml。不推荐这样做——因为这意味着您可以通过 /select 处理程序更改 索引,只需将 qt 设置为“/update”即可。
也有可能是较新的 Solr 中存在错误,其中使用带有 handleSelect="true" 的 qt 无法正常工作。我不确定这是否真的会被认为是一个错误。肯定不会推荐配置。
当您收到该异常时,solrconfig.xml 中的 handleSelect 设置是什么?
看起来问题刚刚自行解决。没有进行任何更改,但现在一切正常。我们认为可能在后台进行了一些索引编制,或者 Solr 本身发生了一些事情。我们可能永远不会知道,但我无法再重现这个问题,所以我想这行得通。
感谢所有试图提供帮助的人。