Hmmm, looking at the code that line looks like this: sortSpec.getSort().getSort();
I’m curious what happens if you specify a sort on the query? If that makes the problem go away, it’s a smoking gun. Whether or not adding sorting makes the problem go away, this looks like something that’s a legitimate JIRA, please go ahead and raise one. Best, Erick > On Jul 15, 2020, at 4:34 AM, Marc Linden <marc.lin...@virtual-identity.com> > wrote: > > Hi all, > > I'm facing the problem that Solr is throwing a NullPointerException when > performing a distributed search with multiple shards having elevation > configured where one or more shards do have elevated results but others do > not. > > We are using Solr 8.2 and have the QueryElevationComponent configured with > "last-components" of the default search handler "/select". But the problem > also occurs when using the explicit "/elevate" search handler. > <requestHandler name="/select" class="solr.SearchHandler"> > ... > <arr name="last-components"> > <str>elevator</str> > </arr> > </requestHandler> > ... > <searchComponent name="elevator" class="solr.QueryElevationComponent" > > <!-- pick a fieldType to analyze queries --> > <str name="queryFieldType">string</str> > <str name="config-file">elevate.xml</str> > </searchComponent> > > ### Steps to reproduce: > > (1) Add entries to the elevate.xml of each core to elevate a specific > document for the text "searchTerm": > > core1: > <elevate> > ... > <query text="searchTerm"><doc id="core1docId1" /></query> > </elevate> > core2: > <elevate> > ... > <query text="searchTerm"><doc id="core2docId1" /></query> > </elevate> > > (2) Execute query (we use port 9983): > http://localhost:9983/solr/web/select?q=elevatedTerm&lowercaseOperators=false&df=text_en&defType=edismax&fq=lang:en&shards=localhost:9983/solr/core1,localhost:9983/solr/core2&fl=[elevated],[shard],area,id&rows=10&start=0 > > Now as both shards have elevated documents for the requested "searchTerm" the > search results are as expected: > > response: { > numFound: 5192, > start: 0, > maxScore: 1.9032197, > docs: [{ > area: "press", > id: "core1docId1", > [elevated]: true, > [shard]: "localhost:9983/solr/core1" > }, { > area: "products", > id: "core2docId1", > [elevated]: true, > [shard]: "localhost:9983/solr/core2" > }, { > area: "press", > id: "core1docId2", > [elevated]: false, > [shard]: "localhost:9983/solr/core1" > }, > ... > > (3) Remove the elevation entry for that "searchTerm" from one of the cores, > e.g. via comment > > core2: > <elevate> > ... > <!-- > <query text="searchTerm"><doc id="core2docId1" /></query> > --> > </elevate> > > > (4) Reload the modified core: > http://localhost:9983/solr/admin/cores?action=RELOAD&core=core2 > > (5) Request same query again and you get the NPE: > > error: { > trace: "java.lang.NullPointerException > at > org.apache.solr.handler.component.QueryComponent.unmarshalSortValues(QueryComponent.java:1068) > at > org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:917) > at > org.apache.solr.handler.component.QueryComponent.handleRegularResponses(QueryComponent.java:613) > at > org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:592) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:431) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:2578) > at > org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:780) > at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:566) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:423) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:350) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) > ... > > > I want to ask the community if I'm missing something or if this really is a > bug. > > Thanks in advance, > Marc > Marc Linden > Developer > > Virtual Identity AG > Grünwälderstraße 10-14 > 79098 Freiburg > > +49 761 20758-422 > -- > > marc.lin...@virtual-identity.com > http://www.virtual-identity.com > > Freiburg | München | Wien | Porto > > ________________________________ > > Virtual Identity AG > Grünwälderstraße 10-14 > 79098 Freiburg > Amtsgericht Freiburg, HRB 6218 > Vorstand: Ralf Heller > Vorsitzende des Aufsichtsrates: Kirsten Heller > Umsatzsteuer-ID: DE208002218