代码之家  ›  专栏  ›  技术社区  ›  Tim

Solr-statsCache实现LRUStatsCache引发NullPointerException

  •  0
  • Tim  · 技术社区  · 9 年前

    我和Solr有很多问题 statsCache 特色这是 feature request 在JIRA。我使用的是一个带有两个碎片的集合,复制因子为2。

    enter image description here

    solrconfig.xml 我添加了以下statsCache实现:

    <statsCache class="org.apache.solr.search.stats.LRUStatsCache"/>
    

    我必须使用statsCache特性,因为在基本分片中有更多的文档,就像在编辑分片中一样。但得分必须是全球性的。

    当我查询开始计算分数的东西时,我得到 有时不是决定论者 以下例外情况:

    java.lang.NullPointerException
        at org.apache.solr.search.stats.LRUStatsCache.getPerShardTermStats(LRUStatsCache.java:122)
        at org.apache.solr.search.stats.ExactStatsCache.sendGlobalStats(ExactStatsCache.java:237)
        at org.apache.solr.handler.component.QueryComponent.createMainQuery(QueryComponent.java:922)
        at org.apache.solr.handler.component.QueryComponent.regularDistributedProcess(QueryComponent.java:713)
        at org.apache.solr.handler.component.QueryComponent.distributedProcess(QueryComponent.java:666)
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:305)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:497)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
        at java.lang.Thread.run(Thread.java:722)
    

    请求 q=*:* 每次都很好。但是 q=SomeTerm 结果有时在 NullPointerException .

    我尝试了所有statsCache实现。

    我不可能发现这个问题。有人能帮我吗?

    如果您需要更多信息,请留言。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Tim    9 年前

    我在Twitter上分享了这个问题 @ApacheSolr 。这是一个应该在Solr 5.3中修复的bug,Solr 5.3应该在8月的第一周发布。

    以下是对话:

    Solr statsCache实现LRUStatsCache抛出 空指针异常 http://t.co/dLT7aygoye /抄送@ApacheSolr ( Link )

    @timkrueger我们知道这个bug。应在下一个 版本5.3。参见 https://t.co/kt7QredwKr ( Link )

    @ApacheSolr谢谢你的回答。是否有已知的发布日期 5.3? ( Link )

    @tim_krueger不能肯定,但通常每次都会发布 30-40天,因此我们可以预计在8月的第一周左右。 ( Link )