我通过自定义开发层对 solr 进行查询,并且在我的层中超时的少数查询仍在 solr 实例中。solr 中是否有可用于超时特定查询的参数
问问题
16848 次
1 回答
17
如Solr 中所述,客户端断开连接后查询是否继续?并写在 Solr FAQ
在内部,Solr 不会让任何请求超时——它让更新和查询都需要花费多长时间才能完全处理。
但在常见问题解答的同一位置写着
但是,用于运行 Solr 的 servlet 容器可能会对所有请求施加任意超时限制。如果您发现此值太低,请查阅您的 Serlvet 容器的文档。(在 Jetty 中,相关设置是“maxIdleTime”,以毫秒为单位)
因此,您可以将容器配置为关闭长时间运行的请求,以便连接的 HTTPClients 接收关闭。
然而,这可能还不够,Solr 可能在内部仍然工作,在您的服务器上产生负载。因此可以使用公共 timeAllowed 参数。
timeAllowed - 此参数指定允许完成搜索的时间量(以毫秒为单位)。如果此时间在搜索完成之前到期,则将返回任何部分结果。
在每个请求中或在 solrconfig.xml 中配置为默认值。
<requestHandler name="standard" class="solr.StandardRequestHandler" default="true">
<lst name="defaults">
<!-- other parts left out -->
<!-- timeout (in milliseconds) -->
<int name="timeAllowed">5000</int>
</lst>
</requestHandler>
于 2013-10-24T05:57:04.780 回答