What’s the field and type definition of submit_date?   Could that be the issue?

Also, one thing you could do is separate the nested parsers like this:

    q={!boost b=… v=$qq}
    qq={!dismax qf=‘….’ v=$term}

Relying on `v` to be the string after the closing curly bracket is sometimes 
error-prone, and I tend to explicitly define `v` like this to avoid escaping 
and parsing hassles.

(whether you set these in the request handler or as explicit params is up to 
you, and keeping everything (but `term`) in the request handler definition 
would be the cleanest client request way to go, as you’re doing.

        Erik


> On Oct 31, 2016, at 4:19 PM, Gintautas Sulskus <gintautas.suls...@gmail.com> 
> wrote:
> 
> Hi Erik,
> 
> I have defined the query as SearchHandler:
> 
> <requestHandler name="/testSearch" class="solr.SearchHandler">
>  <lst name="defaults”>
>    <str name="q">
>      {!boost b=recip(ms(NOW/HOUR, submit_date),3.16e-11,1,1)}
>      {!type=dismax qf='title^10 body^5 body^1' v=$term}
>    </str>
>  </lst>
> </requestHandler>
> 
> The handler is then invoked with the following url:
> 
> /solr/core/testSearch?term=apple
> 
> The handler works if I comment out the date-boost line:
> "{!boost b=recip(ms(NOW/HOUR, submit_date),3.16e-11,1,1)}"
> 
> Gin
> 
> Best Wishes,
> Gintautas Sulskus
> 
> On Mon, Oct 31, 2016 at 6:15 PM, Erik Hatcher <erik.hatc...@gmail.com>
> wrote:
> 
>> how’d you set “$term” - the correct way would be &term=apple on the Solr
>> request.
>> 
>> 
>>> On Oct 31, 2016, at 2:07 PM, Gintautas Sulskus <
>> gintautas.suls...@gmail.com> wrote:
>>> 
>>> Hi,
>>> 
>>> I am trying to construct a timestamp-boosted query comprising two
>> weighted
>>> fields: "title" and "body":
>>> 
>>> {!boost b=recip(ms(NOW/HOUR,submit_date),3.16e-11,1,1)}
>>> {!type=dismax qf='title^10 body^1' v=$term}
>>> 
>>> $term=apple
>>> 
>>> I expect the given example query provided above to search fields "title"
>>> and "body" using keyword "apple" and adjust the order of the results by
>> the
>>> submission date "submit_date".
>>> 
>>> However, the query just throws the NullPointerException exception: [1].
>>> Could you please help me out with this issue?
>>> 
>>> I am using Solr 4.10.3+cdh5.8.2+434 - part of Cloudera 5.8.2 package.
>>> 
>>> Best,
>>> Gin
>>> 
>>> [1] the exception:
>>> java.lang.NullPointerException at
>>> org.apache.lucene.queries.function.BoostedQuery.
>> hashCode(BoostedQuery.java:215)
>>> at org.apache.lucene.search.BooleanClause.hashCode(
>> BooleanClause.java:99)
>>> at java.util.AbstractList.hashCode(AbstractList.java:541) at
>>> org.apache.lucene.search.BooleanQuery.hashCode(BooleanQuery.java:656) at
>>> org.apache.solr.search.QueryResultKey.<init>(QueryResultKey.java:47) at
>>> org.apache.solr.search.SolrIndexSearcher.getDocListC(
>> SolrIndexSearcher.java:1347)
>>> at
>>> org.apache.solr.search.SolrIndexSearcher.search(
>> SolrIndexSearcher.java:518)
>>> at
>>> org.apache.solr.handler.component.QueryComponent.
>> process(QueryComponent.java:485)
>>> at
>>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(
>> SearchHandler.java:218)
>>> at
>>> org.apache.solr.handler.RequestHandlerBase.handleRequest(
>> RequestHandlerBase.java:135)
>>> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2025) at
>>> org.apache.solr.servlet.SolrDispatchFilter.execute(
>> SolrDispatchFilter.java:918)
>>> at
>>> org.apache.solr.servlet.SolrDispatchFilter.httpSolrCall(
>> SolrDispatchFilter.java:481)
>>> at
>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(
>> SolrDispatchFilter.java:260)
>>> at
>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(
>> SolrDispatchFilter.java:255)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
>> ApplicationFilterChain.java:235)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:206)
>>> at
>>> org.apache.solr.servlet.SolrHadoopAuthenticationFilter$2.doFilter(
>> SolrHadoopAuthenticationFilter.java:408)
>>> at
>>> org.apache.hadoop.security.authentication.server.
>> AuthenticationFilter.doFilter(AuthenticationFilter.java:622)
>>> at
>>> org.apache.hadoop.security.token.delegation.web.
>> DelegationTokenAuthenticationFilter.doFilter(
>> DelegationTokenAuthenticationFilter.java:291)
>>> at
>>> org.apache.hadoop.security.authentication.server.
>> AuthenticationFilter.doFilter(AuthenticationFilter.java:574)
>>> at
>>> org.apache.solr.servlet.SolrHadoopAuthenticationFilter.doFilter(
>> SolrHadoopAuthenticationFilter.java:413)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
>> ApplicationFilterChain.java:235)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:206)
>>> at org.apache.solr.servlet.HostnameFilter.doFilter(
>> HostnameFilter.java:86)
>>> 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:127)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(
>> ErrorReportValve.java:103)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(
>> StandardEngineValve.java:109)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(
>> CoyoteAdapter.java:293)
>>> at
>>> org.apache.coyote.http11.Http11Processor.process(
>> Http11Processor.java:861)
>>> at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.
>> process(Http11Protocol.java:620)
>>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(
>> JIoEndpoint.java:489)
>>> at java.lang.Thread.run(Thread.java:745)
>> 
>> 

Reply via email to