【问题标题】:NullPointerException in solr multicoresolr 多核中的 NullPointerException
【发布时间】:2023-03-12 22:36:01
【问题描述】:

我正在为两个内核配置我的 solr,并且大部分都可以正常工作,但是我遇到了这个神秘的错误。

首先,这是我的 solr.xml:

<?xml version='1.0' encoding='UTF-8'?>
<solr persistent="true">
 <cores adminPath="/admin/cores">
  <core name="cars" dataDir="/var/lib/solr/data/cars" config="/etc/solr/home_cars/conf/solrconfig.xml" schema="/etc/solr/home_cars/conf/schema.xml" instanceDir="home_cars" />
  <core name="industrial" dataDir="/var/lib/solr/data/industrial" config="/etc/solr/home_industrial/conf/solrconfig.xml" schema="/etc/solr/home_industrial/conf/schema.xml" instanceDir="home_industrial" />
 </cores>
</solr>

这一切看起来都很好。我相信我已经为所有位置设置了适当的权限,但我仍然在 catalina.out 中收到此错误:

INFO: user.dir=/var/lib/tomcat6
Aug 8, 2010 2:03:27 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NullPointerException
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
        at org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:52)
        at org.apache.solr.core.SolrCore$3.call(SolrCore.java:1147)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)

一些[信息]日志,然后是这个:

SEVERE: java.lang.NullPointerException
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
        at org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:52)
        at org.apache.solr.core.SolrCore$3.call(SolrCore.java:1147)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)

我不是 solr、java 或 tomcat 中的顶级猫(或者其他很多,呵呵)。任何帮助将不胜感激!

【问题讨论】:

    标签: tomcat lucene solr multicore


    【解决方案1】:

    这似乎是因为 QueryElevationComponent 的配置不存在。试试这个:

    http://wiki.apache.org/solr/QueryElevationComponent

    【讨论】:

    • 你是对的,太棒了!稍后出现一些明显的错误消息,一切正常。谢谢你,艾琳!
    【解决方案2】:

    碰巧我复制了之前的solrconfig.xml,所以电梯.xml路径引用错误。

    如果你从模板开始搜索:

    <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>
    

    并将其更改为:

    <searchComponent name="elevator" class="solr.QueryElevationComponent" >
     <!-- pick a fieldType to analyze queries -->
     <str name="queryFieldType">string</str>
     <str name="config-file">../../conf/elevate.xml</str>
    </searchComponent>
    

    假设您使用的是所有默认目录。

    【讨论】:

    • 谢谢 - 我刚刚遇到了完全相同的问题并解决了它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多