运行带有大量筛选的Solr查询时出现SocketException

运行带有大量筛选的Solr查询时出现SocketException,exception,solr,connection,abort,Exception,Solr,Connection,Abort,我正在尝试对本地solr服务器(单个实例)运行查询。 我还在为ID添加过滤器。 因此,对于10000个ID,我创建了10个过滤器查询,每个查询由1000个ID组成 筛选器查询如下所示: "id:(1 2 3 n)" 我也在使用Solrj,所以它是这样的: query.addFilterQuery("id:(1 2 3 n)"); 但在一些阈值之后(5分钟前是1000,现在大约是800),我开始收到异常: org.apache.solr.client.solrj.SolrServerExce

我正在尝试对本地solr服务器(单个实例)运行查询。 我还在为ID添加过滤器。
因此,对于10000个ID,我创建了10个过滤器查询,每个查询由1000个ID组成

筛选器查询如下所示:

"id:(1 2 3 n)" 
我也在使用Solrj,所以它是这样的:

query.addFilterQuery("id:(1 2 3 n)");
但在一些阈值之后(5分钟前是1000,现在大约是800),我开始收到异常:

org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request
    Caused by: org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http://localhost:8080/solr
        at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:416)
        at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
        at org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer.java:447)
        ... 37 more
    Caused by: java.net.SocketException: Software caused connection abort: recv failed
我在谷歌上搜索了一下,但只找到了关于maxBoolean的查询,这可能不是我的情况 你说得对。
默认情况下,Solrj使用GET而不是POST。
因此,您必须使用server.query(query,SolrRequest.METHOD.POST)。

我找到了一个解决方案。结果表明,默认情况下,Solrj使用GET而不是POST。修复的简单方法是使用server.query(query,SolrRequest.METHOD.POST)。