在Solr中定时查询

时间:2013-10-24 05:14:07

标签: java solr lucene

我通过自定义开发的图层查询solr,我在我的图层中超时的几个查询仍然在solr实例中。 solr中是否有可用于超时特定查询的参数

1 个答案:

答案 0 :(得分:9)

Solr query continues after client disconnects?written in the Solr FAQ

中所述
  

在内部,Solr没有做任何超时任何请求的事情 - 它允许更新和查询需要花费很长时间才能完全处理。

但在FAQ的同一地点写的

  

但是,用于运行Solr的servlet容器可能会对所有请求施加任意超时限制。如果您发现此值太低,请参阅Serlvet容器的文档。 (在Jetty中,相关设置为" maxIdleTime"以毫秒为单位)

因此,您可以将容器配置为关闭长时间运行的请求,以便连接的HTTPClients接收关闭。

然而,这可能还不够,尽管在服务器上产生负载,Solr仍然可以在内部工作。因此可能会使用the common timeAllowed parameter

  

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>