簡體   English   中英

運行帶有大量過濾的Solr查詢時SocketException

[英]SocketException while running Solr Query with lots of filtering

我正在嘗試對本地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)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM