You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by vivek sar <vi...@gmail.com> on 2009/04/10 02:01:32 UTC

Question on Solr Distributed Search

Hi,

  I've another thread on multi-core distributed search, but just
wanted to put a simple question here on distributed search to get some
response. I've a search query,

   http://etsx19.co.com:8080/solr/20090409_9/select?q=usa     -
returns with 10 result

now if I add "shards" parameter to it,

  http://etsx19.co.com:8080/solr/20090409_9/select?shards=etsx19.co.com:8080/solr/20090409_9&q=usa
 - this fails with

org.apache.solr.client.solrj.SolrServerException:
java.net.SocketException: Connection reset
org.apache.solr.common.SolrException:
org.apache.solr.client.solrj.SolrServerException:
java.net.SocketException: Connection reset at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:282)
at
..
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:637)
Caused by: org.apache.solr.client.solrj.SolrServerException:
java.net.SocketException: Connection reset
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:473)
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
	at org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:422)
..
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
	at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
	at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
	at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
	at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)

Attached is my solrconfig.xml. Do I need a special RequestHandler for
sharding? I haven't been able to make any distributed search
successfully. Any help is appreciated.

Note: I'm indexing using Solrj - not sure if that makes any difference
to the search part.

Thanks,
-vivek

Re: Question on Solr Distributed Search

Posted by vivek sar <vi...@gmail.com>.
yes - it's all new indexes. I can search them individually, but adding
"shards" throws "Connection Reset" error. Is there any way I can debug
this or any other pointers?

-vivek

On Fri, Apr 10, 2009 at 4:49 AM, Shalin Shekhar Mangar
<sh...@gmail.com> wrote:
> On Fri, Apr 10, 2009 at 7:50 AM, vivek sar <vi...@gmail.com> wrote:
>
>> Just an update. I changed the schema to store the unique id field, but
>> I still get the connection reset exception. I did notice that if there
>> is no data in the core then it returns the 0 result (no exception),
>> but if there is data and you search using "shards" parameter I get the
>> connection reset exception. Can anyone provide some tip on where can I
>> look for this problem?
>>
>>
> Did you re-index after changing the field to stored?
> --
> Regards,
> Shalin Shekhar Mangar.
>

Re: Question on Solr Distributed Search

Posted by Shalin Shekhar Mangar <sh...@gmail.com>.
On Fri, Apr 10, 2009 at 7:50 AM, vivek sar <vi...@gmail.com> wrote:

> Just an update. I changed the schema to store the unique id field, but
> I still get the connection reset exception. I did notice that if there
> is no data in the core then it returns the 0 result (no exception),
> but if there is data and you search using "shards" parameter I get the
> connection reset exception. Can anyone provide some tip on where can I
> look for this problem?
>
>
Did you re-index after changing the field to stored?
-- 
Regards,
Shalin Shekhar Mangar.

Re: Question on Solr Distributed Search

Posted by vivek sar <vi...@gmail.com>.
Just an update. I changed the schema to store the unique id field, but
I still get the connection reset exception. I did notice that if there
is no data in the core then it returns the 0 result (no exception),
but if there is data and you search using "shards" parameter I get the
connection reset exception. Can anyone provide some tip on where can I
look for this problem?


Apr 10, 2009 3:16:04 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException:
org.apache.solr.client.solrj.SolrServerException:
java.net.SocketException: Connection reset
	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:282)
	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1333)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:637)
Caused by: org.apache.solr.client.solrj.SolrServerException:
java.net.SocketException: Connection reset
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:473)
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
	at org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:422)
	at org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:395)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	... 1 more
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
	at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
	at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
	at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
	at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
	at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)


On Thu, Apr 9, 2009 at 6:51 PM, vivek sar <vi...@gmail.com> wrote:
> I think the reason behind the "connection reset" is. Looking at the
> code it points to QueryComponent.mergeIds()
>
> resultIds.put(shardDoc.id.toString(), shardDoc);
>
> looks like the doc unique id is returning null. I'm not sure how is it
> possible as its a required field. Right my unique id is not stored
> (only indexed) - does it has to be stored for distributed search?
>
> HTTP Status 500 - null java.lang.NullPointerException at
> org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:432)
> at org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:276)
> at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:290)
> at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1333) at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
> at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:637)
>
> On Thu, Apr 9, 2009 at 5:01 PM, vivek sar <vi...@gmail.com> wrote:
>> Hi,
>>
>>  I've another thread on multi-core distributed search, but just
>> wanted to put a simple question here on distributed search to get some
>> response. I've a search query,
>>
>>   http://etsx19.co.com:8080/solr/20090409_9/select?q=usa     -
>> returns with 10 result
>>
>> now if I add "shards" parameter to it,
>>
>>  http://etsx19.co.com:8080/solr/20090409_9/select?shards=etsx19.co.com:8080/solr/20090409_9&q=usa
>>  - this fails with
>>
>> org.apache.solr.client.solrj.SolrServerException:
>> java.net.SocketException: Connection reset
>> org.apache.solr.common.SolrException:
>> org.apache.solr.client.solrj.SolrServerException:
>> java.net.SocketException: Connection reset at
>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:282)
>> at
>> ..
>>        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>        at java.lang.Thread.run(Thread.java:637)
>> Caused by: org.apache.solr.client.solrj.SolrServerException:
>> java.net.SocketException: Connection reset
>>        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:473)
>>        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
>>        at org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:422)
>> ..
>> Caused by: java.net.SocketException: Connection reset
>>        at java.net.SocketInputStream.read(SocketInputStream.java:168)
>>        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
>>        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
>>        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
>>        at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
>>        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
>>        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
>>        at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
>>
>> Attached is my solrconfig.xml. Do I need a special RequestHandler for
>> sharding? I haven't been able to make any distributed search
>> successfully. Any help is appreciated.
>>
>> Note: I'm indexing using Solrj - not sure if that makes any difference
>> to the search part.
>>
>> Thanks,
>> -vivek
>>
>

Re: Question on Solr Distributed Search

Posted by vivek sar <vi...@gmail.com>.
I think the reason behind the "connection reset" is. Looking at the
code it points to QueryComponent.mergeIds()

resultIds.put(shardDoc.id.toString(), shardDoc);

looks like the doc unique id is returning null. I'm not sure how is it
possible as its a required field. Right my unique id is not stored
(only indexed) - does it has to be stored for distributed search?

HTTP Status 500 - null java.lang.NullPointerException at
org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:432)
at org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:276)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:290)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1333) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:637)

On Thu, Apr 9, 2009 at 5:01 PM, vivek sar <vi...@gmail.com> wrote:
> Hi,
>
>  I've another thread on multi-core distributed search, but just
> wanted to put a simple question here on distributed search to get some
> response. I've a search query,
>
>   http://etsx19.co.com:8080/solr/20090409_9/select?q=usa     -
> returns with 10 result
>
> now if I add "shards" parameter to it,
>
>  http://etsx19.co.com:8080/solr/20090409_9/select?shards=etsx19.co.com:8080/solr/20090409_9&q=usa
>  - this fails with
>
> org.apache.solr.client.solrj.SolrServerException:
> java.net.SocketException: Connection reset
> org.apache.solr.common.SolrException:
> org.apache.solr.client.solrj.SolrServerException:
> java.net.SocketException: Connection reset at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:282)
> at
> ..
>        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:637)
> Caused by: org.apache.solr.client.solrj.SolrServerException:
> java.net.SocketException: Connection reset
>        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:473)
>        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
>        at org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:422)
> ..
> Caused by: java.net.SocketException: Connection reset
>        at java.net.SocketInputStream.read(SocketInputStream.java:168)
>        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
>        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
>        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
>        at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
>        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
>        at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
>        at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
>
> Attached is my solrconfig.xml. Do I need a special RequestHandler for
> sharding? I haven't been able to make any distributed search
> successfully. Any help is appreciated.
>
> Note: I'm indexing using Solrj - not sure if that makes any difference
> to the search part.
>
> Thanks,
> -vivek
>