You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Munendra S N (JIRA)" <ji...@apache.org> on 2019/07/05 14:10:00 UTC

[jira] [Resolved] (SOLR-9095) ReRanker should gracefully handle sorts without score

     [ https://issues.apache.org/jira/browse/SOLR-9095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Munendra S N resolved SOLR-9095.
--------------------------------
    Resolution: Duplicate

> ReRanker should gracefully handle sorts without score
> -----------------------------------------------------
>
>                 Key: SOLR-9095
>                 URL: https://issues.apache.org/jira/browse/SOLR-9095
>             Project: Solr
>          Issue Type: Bug
>          Components: search
>    Affects Versions: 4.10.4
>         Environment: Solr 4.10.4 
> CentOS 6.5 64 bit
> Java 1.8.0_51 
>            Reporter: Andrea Gazzarini
>            Priority: Minor
>              Labels: re-ranking
>
> I have a Solr 4.10.4 instance with a RequestHandler that has a re-ranking query configured like this:
> {code:title=solrconfig.xml|borderStyle=solid}
> <lst name="defaults">
>             <str name="defType">dismax</str>
>             ...
>             <str name="rqq">{!boost b=someFunction() v=$q}</str>
>             <str name="rq">{!rerank reRankQuery=$rqq reRankDocs=60 reRankWeight=1.2}</str>
>             <str name="sort">score desc</str>
> </lst>
> {code}
> Everything is working until the client sends a sort params that doesn't include the score field. So if for example the request contains "sort=price asc" then a NullPointerException is thrown:
> {code}
> 09:46:08,548 ERROR [org.apache.solr.core.SolrCore] java.lang.NullPointerException
> [INFO] [talledLocalContainer]     at org.apache.lucene.search.TopFieldCollector$OneComparatorScoringMaxScoreCollector.collect(TopFieldCollector.java:291)
> [INFO] [talledLocalContainer]     at org.apache.solr.search.ReRankQParserPlugin$ReRankCollector.collect(ReRankQParserPlugin.java:263)
> [INFO] [talledLocalContainer]     at org.apache.solr.search.SolrIndexSearcher.sortDocSet(SolrIndexSearcher.java:1999)
> [INFO] [talledLocalContainer]     at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1423)
> [INFO] [talledLocalContainer]     at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:514)
> [INFO] [talledLocalContainer]     at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:484)
> [INFO] [talledLocalContainer]     at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
> [INFO] [talledLocalContainer]     at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> {code}
> The only way to avoid this exception is to explicitly add the "score desc" value to the incoming field; that is  
> {code}
> ?q=...&sort=price asc, score desc 
> {code}
> In this way I get no exception. I said "explicitly" because adding an "appends" section in my handler
> {code}
> <lst name="appends">
>     <str name="sort">score desc</str>
> </lst>
> {code}
> Even I don't know if that could solve my problem, in practice it is completely ignoring (i.e. I'm still getting the NPE above).
> However, when I explicitly add "sort=price asc, score desc", as consequence of the re-ranking, the top 60 results, although I said to Solr "order by price", are still shuffled and that's not what I want.
> So, at the end, the issue is about the following two points: 
> 1. the NullPointerException above 
> 2.  a way to disable the re-ranking (automatically or not)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org