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 Max Bridgewater <ma...@gmail.com> on 2016/04/01 18:40:14 UTC

Function Query Parsing problem in Solr 5.4.1 and Solr 5.5.0

Hi,

I have the following configuration for firstSearcher handler in
solrconfig.xml:


  <listener event="firstSearcher" class="solr.QuerySenderListener">
      <arr name="queries">
        <lst>
          <str name="q">parts</str>
          <str name="sort">score desc, Review1 asc, Rank2 asc</str>
        </lst>
        <lst>
          <str name="q">make</str>
          <str name="sort">{!func}sum(product(0.01,param1),
product(0.20,param2),  min(param2,0.4)) desc</str>
        </lst>
      </arr>
    </listener>

This works great in Solr 4.10. However, in solr 5.4.1 and solr 5.5.0, I get
the below error. How do I write this kind of query with Solr 5?


Thanks,
Max.


ERROR org.apache.solr.handler.RequestHandlerBase  [   x:productsearch] –
org.apache.solr.common.SolrException: Can't determine a Sort Order (asc or
desc) in sort spec '{!func}sum(product(0.01,param1), product(0.20,param2),
min(param2,0.4)) desc', pos=32
        at
org.apache.solr.search.SortSpecParsing.parseSortSpec(SortSpecParsing.java:143)
        at org.apache.solr.search.QParser.getSort(QParser.java:247)
        at
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:18
7)
        at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler
.java:247)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.jav
a:156)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2073)
        at
org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:6
9)
        at org.apache.solr.core.SolrCore$5.call(SolrCore.java:1840)

Re: Function Query Parsing problem in Solr 5.4.1 and Solr 5.5.0

Posted by Max Bridgewater <ma...@gmail.com>.
Thank you Mike, that was it.

Max.

On Sat, Apr 2, 2016 at 2:40 AM, Mikhail Khludnev <mkhludnev@griddynamics.com
> wrote:

> Hello Max,
>
> Since it reports the first space occurrence pos=32, I advise to nuke all
> spaces between braces  in sum().
>
> On Fri, Apr 1, 2016 at 7:40 PM, Max Bridgewater <max.bridgewater@gmail.com
> >
> wrote:
>
> > Hi,
> >
> > I have the following configuration for firstSearcher handler in
> > solrconfig.xml:
> >
> >
> >   <listener event="firstSearcher" class="solr.QuerySenderListener">
> >       <arr name="queries">
> >         <lst>
> >           <str name="q">parts</str>
> >           <str name="sort">score desc, Review1 asc, Rank2 asc</str>
> >         </lst>
> >         <lst>
> >           <str name="q">make</str>
> >           <str name="sort">{!func}sum(product(0.01,param1),
> > product(0.20,param2),  min(param2,0.4)) desc</str>
> >         </lst>
> >       </arr>
> >     </listener>
> >
> > This works great in Solr 4.10. However, in solr 5.4.1 and solr 5.5.0, I
> get
> > the below error. How do I write this kind of query with Solr 5?
> >
> >
> > Thanks,
> > Max.
> >
> >
> > ERROR org.apache.solr.handler.RequestHandlerBase  [   x:productsearch] –
> > org.apache.solr.common.SolrException: Can't determine a Sort Order (asc
> or
> > desc) in sort spec '{!func}sum(product(0.01,param1),
> product(0.20,param2),
> > min(param2,0.4)) desc', pos=32
> >         at
> >
> >
> org.apache.solr.search.SortSpecParsing.parseSortSpec(SortSpecParsing.java:143)
> >         at org.apache.solr.search.QParser.getSort(QParser.java:247)
> >         at
> >
> >
> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:18
> > 7)
> >         at
> >
> >
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler
> > .java:247)
> >         at
> >
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.jav
> > a:156)
> >         at org.apache.solr.core.SolrCore.execute(SolrCore.java:2073)
> >         at
> >
> >
> org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:6
> > 9)
> >         at org.apache.solr.core.SolrCore$5.call(SolrCore.java:1840)
> >
>
>
>
> --
> Sincerely yours
> Mikhail Khludnev
> Principal Engineer,
> Grid Dynamics
>
> <http://www.griddynamics.com>
> <mk...@griddynamics.com>
>

Re: Function Query Parsing problem in Solr 5.4.1 and Solr 5.5.0

Posted by Mikhail Khludnev <mk...@griddynamics.com>.
Hello Max,

Since it reports the first space occurrence pos=32, I advise to nuke all
spaces between braces  in sum().

On Fri, Apr 1, 2016 at 7:40 PM, Max Bridgewater <ma...@gmail.com>
wrote:

> Hi,
>
> I have the following configuration for firstSearcher handler in
> solrconfig.xml:
>
>
>   <listener event="firstSearcher" class="solr.QuerySenderListener">
>       <arr name="queries">
>         <lst>
>           <str name="q">parts</str>
>           <str name="sort">score desc, Review1 asc, Rank2 asc</str>
>         </lst>
>         <lst>
>           <str name="q">make</str>
>           <str name="sort">{!func}sum(product(0.01,param1),
> product(0.20,param2),  min(param2,0.4)) desc</str>
>         </lst>
>       </arr>
>     </listener>
>
> This works great in Solr 4.10. However, in solr 5.4.1 and solr 5.5.0, I get
> the below error. How do I write this kind of query with Solr 5?
>
>
> Thanks,
> Max.
>
>
> ERROR org.apache.solr.handler.RequestHandlerBase  [   x:productsearch] –
> org.apache.solr.common.SolrException: Can't determine a Sort Order (asc or
> desc) in sort spec '{!func}sum(product(0.01,param1), product(0.20,param2),
> min(param2,0.4)) desc', pos=32
>         at
>
> org.apache.solr.search.SortSpecParsing.parseSortSpec(SortSpecParsing.java:143)
>         at org.apache.solr.search.QParser.getSort(QParser.java:247)
>         at
>
> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:18
> 7)
>         at
>
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler
> .java:247)
>         at
>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.jav
> a:156)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:2073)
>         at
>
> org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:6
> 9)
>         at org.apache.solr.core.SolrCore$5.call(SolrCore.java:1840)
>



-- 
Sincerely yours
Mikhail Khludnev
Principal Engineer,
Grid Dynamics

<http://www.griddynamics.com>
<mk...@griddynamics.com>