[
https://issues.apache.org/jira/browse/SOLR-11770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16568939#comment-16568939
]
Erick Erickson commented on SOLR-11770:
---------------------------------------
Here's a patch. The fix for TVRH isn't very interesting, but there are a couple
of things I'd like to draw your attention to [~dsmiley] and [~caomanhdat2] in
particular.
1> I had to make several methods in RetrieveFieldOptimizer public to use them
outside the package RFO is defined in. I consider this a stopgap until we
tackle SOLR-12625.
2> Along the way I randomized the stored/docValues fields for "schema.xml" for
my TVRH test. The defaults are as they are now so it "shouldn't change
anything". HOWEVER:
2a> I screwed it up on the first attempt and set both to "true" by default the
first time, and then QueryElevationComponentTest started failing. The fix
(which seems safe, but isn't really complete) is in BaseEditorialTransformer.
Anyone interested please take a look. All tests pass.
2b> It's scary that turning on docValues=true stored=true causes this kind of
unintended consequence, how many others are lurking around? I propose we
randomize the two environment variables you'll see in schema.xml in this patch
in the framework and flush out any more. This presupposes that the three valid
combinations should all be supported (stored=false,docValues=false doesn't make
sense).
I'll commit this in over the weekend probably, the interesting work will be in
SOLR-12625....
> NPE in tvrh if no field is specified and document doesn't contain any fields
> with term vectors
> ----------------------------------------------------------------------------------------------
>
> Key: SOLR-11770
> URL: https://issues.apache.org/jira/browse/SOLR-11770
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: SearchComponents - other
> Affects Versions: 6.6.2
> Reporter: Nikolay Martynov
> Assignee: Erick Erickson
> Priority: Major
> Attachments: SOLR-11770.patch
>
>
> It looks like if {{tvrh}} request doesn't contain {{fl}} parameter and
> document doesn't have any fields with term vectors then Solr returns NPE.
> Request:
> {{tvrh?shards.qt=/tvrh&fq=field%3Avalue&wt=json&q=id%3A123&tv.tf=true}}.
> On our 'old' schema we had some fields with {{termVectors}} and even more
> fields with position data. In our new schema we tried to remove unused data
> so we dropped a lot of position data and some term vectors.
> Our documents are 'sparsely' populated - not all documents contain all fields.
> Above request was returning fine for our 'old' schema and returns 500 for our
> 'new' schema - on exactly same Solr (6.6.2).
> Stack trace:
> {code}
> 2017-12-18 01:15:00.958 ERROR (qtp255041198-46697) [c:test s:shard3
> r:core_node11 x:test_shard3_replica1] o.a.s.h.RequestHandlerBase
> java.lang.NullPointerException
> at
> org.apache.solr.handler.component.TermVectorComponent.process(TermVectorComponent.java:324)
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:296)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2482)
> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at org.eclipse.jetty.server.Server.handle(Server.java:534)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> at
> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]