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 Bram Van Dam <br...@intix.eu> on 2013/08/13 10:01:14 UTC

Ping request uses wrong default search field?

Hi folks,

Not sure if this is a bug or intended behaviour, but the ping query 
seems to rely on the value of the default "df" value in the 
requestHandler, rather than on the core's defaultSearchField defined in 
schema.xml.


I would expect the schema.xml values to override solrconfig.xml values. 
Is this intentional? If it's a bug I wouldn't mind having a crack at 
fixing it.


Thanks,

  - Bram


*schema.xml snippet:*

<defaultSearchField>foobar</defaultSearchField>

*solrconfig.xml snippet:*

<requestHandler name="/select" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="df">text</str>
     ...





*Stack Trace:*

2013-08-13/09:49:28.687/CEST|ERROR|http-apr-8080-exec-4|org.apache.solr.core.SolrCore.log:108|org.apache.solr.common.SolrException: 
undefined field text
     at 
org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1225)
     at 
org.apache.solr.schema.IndexSchema$SolrQueryAnalyzer.getWrappedAnalyzer(IndexSchema.java:425)
     at 
org.apache.lucene.analysis.AnalyzerWrapper.initReader(AnalyzerWrapper.java:81)
     at org.apache.lucene.analysis.Analyzer.tokenStream(Analyzer.java:132)
     at 
org.apache.solr.parser.SolrQueryParserBase.newFieldQuery(SolrQueryParserBase.java:408)
     at 
org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:966)
     at 
org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:765)
     at org.apache.solr.parser.QueryParser.Term(QueryParser.java:300)
     at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:186)
     at org.apache.solr.parser.QueryParser.Query(QueryParser.java:108)
     at 
org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:97)
     at 
org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:160)
     at 
org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:72)
     at org.apache.solr.search.QParser.getQuery(QParser.java:142)
     at 
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:117)
     at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:187)
     at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1820)
     at 
org.apache.solr.handler.PingRequestHandler.handlePing(PingRequestHandler.java:253)
     at 
org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:210)
     at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1820)
     at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
     at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
     at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
     at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
     at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
     at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:724)

2013-08-13/09:49:28.689/CEST|ERROR|http-apr-8080-exec-4|org.apache.solr.core.SolrCore.log:108|org.apache.solr.common.SolrException: 
Ping query caused exception: undefined field text
     at 
org.apache.solr.handler.PingRequestHandler.handlePing(PingRequestHandler.java:262)
     at 
org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:210)
     at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1820)
     at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
     at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
     at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
     at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
     at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
     at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
     at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:724)


Re: Ping request uses wrong default search field?

Posted by Chris Hostetter <ho...@fucit.org>.
: On 08/13/2013 06:12 PM, Chris Hostetter wrote:
: > So if you have a "defaults" df in your solrconfig.xml it's going to
: > override the defaultSearchField in schema.xml
: 
: Alright, thanks for clarifying that. Makes sense not that I know the default
: in schema.xml is deprecated.

ok -- but that's actaully totally irrelevant to your question.

Even if the schema.xml's defaultSearchField wasn't deprecated...

  1) request params override any lowlevel/hardcoded solr behavior
     1a) the schema's defaultSearchField is just a way to set what 
         solr's lowlevel behavior should be
  2) request handler "defaults" are a way to say what the "default" 
     *request* params should be when using that handler.

..does that make more sense?


-Hoss

Re: Ping request uses wrong default search field?

Posted by Bram Van Dam <br...@intix.eu>.
On 08/13/2013 06:12 PM, Chris Hostetter wrote:
> So if you have a "defaults" df in your solrconfig.xml it's going to
> override the defaultSearchField in schema.xml

Alright, thanks for clarifying that. Makes sense not that I know the 
default in schema.xml is deprecated.

  - Bram

Re: Ping request uses wrong default search field?

Posted by Chris Hostetter <ho...@fucit.org>.
: Not sure if this is a bug or intended behaviour, but the ping query seems to
: rely on the value of the default "df" value in the requestHandler, rather than
: on the core's defaultSearchField defined in schema.xml.

The df *request* param will always override the defaultSearchField in the 
schema.

"defaults" you specify on handlers in solrconfig.xml are default *request* 
params you want that handler to use unless the param with the same name is 
spcified as part of hte request.

So if you have a "defaults" df in your solrconfig.xml it's going to 
override the defaultSearchField in schema.xml


-Hoss

Re: Ping request uses wrong default search field?

Posted by Erick Erickson <er...@gmail.com>.
1> The defaultSearchField in schema.xml is deprecated
2> the <df> parameter will _probably_ override it anyway.

Best
Erick


On Tue, Aug 13, 2013 at 4:16 AM, Bram Van Dam <br...@intix.eu> wrote:

> Addendum: using Solr 4.3.1
>

Re: Ping request uses wrong default search field?

Posted by Bram Van Dam <br...@intix.eu>.
Addendum: using Solr 4.3.1