You are running into this bug: https://issues.apache.org/jira/browse/SOLR-16931
Currently ReRankScaler.explain requires the debugQuery=true parameter to work properly. I plan fixing this in the next release. Joel Bernstein http://joelsolr.blogspot.com/ On Tue, Sep 12, 2023 at 2:31 AM Anna Ruggero <a.rugg...@sease.io> wrote: > Hi, > I encountered an issue with the re-rank query when setting the scale and > debug=true parameters with Solr 9.3. > When both the scale and the debug are set, a NullPointerException arises > from the ReRankScaler.explain method. > Without the scaling factors, the debug part works. > In both cases (with and without scaling) the re-rank query works, it > is only the debug part that has problems. > > Here is the trace: > > "error": { > "msg": "Cannot invoke \"java.util.Set.contains(Object)\" because > \"this.reRankSet\" is null", > "trace": "java.lang.NullPointerException: Cannot invoke > \"java.util.Set.contains(Object)\" because \"this.reRankSet\" is > null\n\tat > org.apache.solr.search.ReRankScaler.explain(ReRankScaler.java:348)\n\tat > org.apache.solr.search.ReRankWeight.explain(ReRankWeight.java:58)\n\tat > > org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:893)\n\tat > > org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:869)\n\tat > > org.apache.solr.search.SolrIndexSearcher.explain(SolrIndexSearcher.java:2508)\n\tat > > org.apache.solr.util.SolrPluginUtils.getExplanations(SolrPluginUtils.java:415)\n\tat > > org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:348)\n\tat > > org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:315)\n\tat > > org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:92)\n\tat > > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:432)\n\tat > > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:224)\n\tat > org.apache.solr.core.SolrCore.execute(SolrCore.java:2893)\n\tat > > org.apache.solr.servlet.HttpSolrCall.executeCoreRequest(HttpSolrCall.java:871)\n\tat > org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:567)\n\tat > > org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:250)\n\tat > > org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilter$0(SolrDispatchFilter.java:218)\n\tat > > org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:257)\n\tat > > org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:227)\n\tat > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:213)\n\tat > > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)\n\tat > > org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)\n\tat > > org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)\n\tat > > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)\n\tat > > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)\n\tat > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)\n\tat > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)\n\tat > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)\n\tat > > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)\n\tat > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)\n\tat > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)\n\tat > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)\n\tat > > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)\n\tat > > org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:228)\n\tat > > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)\n\tat > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat > > org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)\n\tat > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat > > org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:822)\n\tat > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)\n\tat > org.eclipse.jetty.server.Server.handle(Server.java:563)\n\tat > > org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)\n\tat > org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)\n\tat > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)\n\tat > > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)\n\tat > org.eclipse.jetty.io > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)\n\tat > org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)\n\tat > org.eclipse.jetty.io > .SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)\n\tat > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)\n\tat > > org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)\n\tat > > org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)\n\tat > java.base/java.lang.Thread.run(Thread.java:833)\n", > "code": 500 > } > > > > *Anna Ruggero* > R&D Machine Learning / Software Engineer, Search Consultant > e-mail: a.rugg...@sease.io > > > *Sease* - Information Retrieval Applied > Consulting | Training | Open Source > Sease.io <http://sease.io/> > LinkedIn <https://linkedin.com/company/sease-ltd> | Twitter > <https://twitter.com/seaseltd> | Youtube > <https://www.youtube.com/channel/UCDx86ZKLYNpI3gzMercM7BQ> | Github > <https://github.com/seaseltd> >