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 Michelle Talley <ta...@gmail.com> on 2012/08/01 19:59:22 UTC

Configuration for distributed search

I am having a problem using the SOLR distributed search with version 3.6.0
and version 3.6.1.
I was able to recreate the distributed search example from this wiki:
http://wiki.apache.org/solr/DistributedSearch
and it worked great!

However, when I attempted to use my own schema in place of the one provided
with
the example, I ran into problems.  I did not change anything about the
configuration
except the schema.xml.  Specifically, for each shard, I deleted the
solr/data/index directory
and then replaced the example schema.xml with my own schema.xml in the
solr/conf
directory.  Then, I populated each shard with 1 document each.  I am able to
search each shard independently.  However, when I attempt to use the shards
parameter to initiate a distributed search, I get an error, which I have
included in this email.

I am also attaching my schema.xml and solrconfig.xml.  The solrconfig.xml
matches
exactly the solrconfig.xml that comes with the example.

This command to each shard returns one document from each shard.
curl 'http://localhost:8983/solr/select?debugQuery=true&indent=true&q=conway
'
curl 'http://localhost:7574/solr/select?debugQuery=true&indent=true&q=conway
'

This distributed search command returns 0 documents:
curl '
http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&indent=true&q=conway
'

The same distributed search command with debugQuery=true, returns an error.
curl '
http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&debugQuery=true&indent=true&q=conway
'

Error:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 null

java.lang.NullPointerException
        at
org.apache.solr.common.util.NamedList.nameValueMapToList(NamedList.java:110)
        at
org.apache.solr.common.util.NamedList.&lt;init&gt;(NamedList.java:75)
        at
org.apache.solr.common.util.SimpleOrderedMap.&lt;init&gt;(SimpleOrderedMap.java:58)
        at
org.apache.solr.handler.component.DebugComponent.finishStage(DebugComponent.java:130)
        at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:289)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
        at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /solr/select. Reason:
<pre>    null

java.lang.NullPointerException
        at
org.apache.solr.common.util.NamedList.nameValueMapToList(NamedList.java:110)
        at
org.apache.solr.common.util.NamedList.&lt;init&gt;(NamedList.java:75)
        at
org.apache.solr.common.util.SimpleOrderedMap.&lt;init&gt;(SimpleOrderedMap.java:58)
        at
org.apache.solr.handler.component.DebugComponent.finishStage(DebugComponent.java:130)
        at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:289)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
        at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
        at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
</pre></p><hr /><i><small>Powered by
Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>

</body>
</html>

Any help or pointers with this issue would be greatly appreciated.

Thanks!
Michelle Talley

Re: Configuration for distributed search

Posted by Erick Erickson <er...@gmail.com>.
Hmmm, the zero results could be that you're searching against the
default text field and you don't have "conway" in that field. the
default search field has recently been deprecated, so try specifying a
field in your search....

The debugQuery=on worked fine for me, so I'm not sure what's happening there...

Sorry I can't be more help
Erick

On Wed, Aug 1, 2012 at 1:59 PM, Michelle Talley
<ta...@gmail.com> wrote:
> I am having a problem using the SOLR distributed search with version 3.6.0
> and version 3.6.1.
> I was able to recreate the distributed search example from this wiki:
> http://wiki.apache.org/solr/DistributedSearch
> and it worked great!
>
> However, when I attempted to use my own schema in place of the one provided
> with
> the example, I ran into problems.  I did not change anything about the
> configuration
> except the schema.xml.  Specifically, for each shard, I deleted the
> solr/data/index directory
> and then replaced the example schema.xml with my own schema.xml in the
> solr/conf
> directory.  Then, I populated each shard with 1 document each.  I am able to
> search each shard independently.  However, when I attempt to use the shards
> parameter to initiate a distributed search, I get an error, which I have
> included in this email.
>
> I am also attaching my schema.xml and solrconfig.xml.  The solrconfig.xml
> matches
> exactly the solrconfig.xml that comes with the example.
>
> This command to each shard returns one document from each shard.
> curl
> 'http://localhost:8983/solr/select?debugQuery=true&indent=true&q=conway'
> curl
> 'http://localhost:7574/solr/select?debugQuery=true&indent=true&q=conway'
>
> This distributed search command returns 0 documents:
> curl
> 'http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&indent=true&q=conway'
>
> The same distributed search command with debugQuery=true, returns an error.
> curl
> 'http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&debugQuery=true&indent=true&q=conway'
>
> Error:
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
> <title>Error 500 null
>
> java.lang.NullPointerException
>         at
> org.apache.solr.common.util.NamedList.nameValueMapToList(NamedList.java:110)
>         at
> org.apache.solr.common.util.NamedList.&lt;init&gt;(NamedList.java:75)
>         at
> org.apache.solr.common.util.SimpleOrderedMap.&lt;init&gt;(SimpleOrderedMap.java:58)
>         at
> org.apache.solr.handler.component.DebugComponent.finishStage(DebugComponent.java:130)
>         at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:289)
>         at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
>         at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
>         at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>         at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>         at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>         at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>         at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>         at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>         at
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>         at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> </title>
> </head>
> <body><h2>HTTP ERROR 500</h2>
> <p>Problem accessing /solr/select. Reason:
> <pre>    null
>
> java.lang.NullPointerException
>         at
> org.apache.solr.common.util.NamedList.nameValueMapToList(NamedList.java:110)
>         at
> org.apache.solr.common.util.NamedList.&lt;init&gt;(NamedList.java:75)
>         at
> org.apache.solr.common.util.SimpleOrderedMap.&lt;init&gt;(SimpleOrderedMap.java:58)
>         at
> org.apache.solr.handler.component.DebugComponent.finishStage(DebugComponent.java:130)
>         at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:289)
>         at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
>         at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
>         at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
>         at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>         at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>         at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>         at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>         at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>         at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>         at org.mortbay.jetty.Server.handle(Server.java:326)
>         at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>         at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>         at
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>         at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> </pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
> <br/>
>
> </body>
> </html>
>
> Any help or pointers with this issue would be greatly appreciated.
>
> Thanks!
> Michelle Talley

Re: Configuration for distributed search

Posted by Chris Hostetter <ho...@fucit.org>.
: This command to each shard returns one document from each shard.
: curl 'http://localhost:8983/solr/select?debugQuery=true&indent=true&q=conway
: curl 'http://localhost:7574/solr/select?debugQuery=true&indent=true&q=conway
: 
: This distributed search command returns 0 documents:

What do those two responses look like?  what do they look like if you add 
debugQuery=true ?

: The same distributed search command with debugQuery=true, returns an error.

Interesting ... based on your stack trace that looks like (if i'm 
understanding the code correctly) for some reason the score explanation 
info didn't come back for a document that was returned by one of the 
shards? so the data was null.  I'm not sure what that would happen, but 
i've opened SOLR-3722 to try and prevent the NPEs moving forward.

: java.lang.NullPointerException
:         at
: org.apache.solr.common.util.NamedList.nameValueMapToList(NamedList.java:110)
:         at
: org.apache.solr.common.util.NamedList.&lt;init&gt;(NamedList.java:75)
:         at
: org.apache.solr.common.util.SimpleOrderedMap.&lt;init&gt;(SimpleOrderedMap.java:58)
:         at
: org.apache.solr.handler.component.DebugComponent.finishStage(DebugComponent.java:130)

-Hoss