NullPointerException в многоядерной архитектуре - PullRequest
7 голосов
/ 08 августа 2010

Я настраиваю свой 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)

Некоторые журналы [info], а затем этот:

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 (или во многом другом, хе-хе). Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

5 голосов
/ 08 августа 2010

Похоже, это происходит из-за того, что конфигурации QueryElevationComponent не существует. Попробуйте это:

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

4 голосов
/ 23 мая 2011

Мне случилось, что я скопировал предыдущий файл solrconfig.xml, поэтому ссылка на путь elevator.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>

Если вы используете все каталоги по умолчанию.

...