2016-11-13 20 views
0

DataImportHandlerを使用してxmlファイルをSolr 6.2.1に索引付けしようとしています。そのためにApache Solr DataImportHandlerが索引作成に失敗しました

私はsolrconfig.xmlに必要なインポートおよびこの要請ハンドラを追加しました:

<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib/" regex=".*\.jar" /> 
    <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> 

    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler" startup="lazy"> 
    <lst name="default"> 
     <str name="config">data-config.xml</str> 
    </lst> 
    </requestHandler> 

は、それから私は、データ-config.xmlが書いたとsolrconfig.xmlと同じパスに入れて:

<dataConfig> 
    <dataSource type="FileDataSource" encoding="UTF-8"/> 
    <document> 
     <entity name="pickupdir" 
       processor="FileListEntityProcessor" 
       dataSource="null" 
       baseDir="/vagrant/TREC8all/Adhoc/" 
       recursive="true" 
       fileName="^[\w\d-]+\.xml$" /> 
     <entity name="trec8_simple" 
       processor="XPathEntityProcessor" 
       stream="true" 
       datasource="pickupdir" 
       url="${pickupdir.fileAbsolutePath}" 
       forEach="/DOCS/DOC"> 
      <field column="id" xpath="/DOCS/DOC/DOCNO"/> 
      <field column="header" xpath="/DOCS/DOC/HEADER"/> 
      <field column="text" xpath="/DOCS/DOC/TEXT"/> 
     </entity> 
    </document> 
</dataConfig> 

これはImportHandlerは彼らがのXPathによると、ディレクトリおよびインデックス内のすべてのXMLファイルを再帰的に反復処理するべきです。私はこのような要請ハンドラを呼び出すと

ERROR (Thread-14) [ x:trec8] o.a.s.h.d.DataImporter Full Import failed:java.lang.NullPointerException 
     at org.apache.solr.handler.dataimport.DataImporter.createPropertyWriter(DataImporter.java:325) 
     at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:412) 
     at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:475) 
     at org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:458) 
     at java.lang.Thread.run(Thread.java:745) 

http://192.168.155.156:8983/solr/trec8/dataimport?command=full-import&entity=trec8_simple 

私はsolr.logでこの例外を取得しています(私の代わりに、ローカルの放浪ボックス内のSolrを実行しています)イムは、これがDataImportHandlerのソースであるべきと仮定:

https://github.com/sudarshang/lucene-solr/blob/master/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java

この例外を引き起こしていることとその意味を理解することができません。誰かが私を助けることができればいいだろう。ありがとう!

EDIT: これは、DataImportHandlerがdata-config.xmlを見つけることができないと考えていると思います。私はそれを削除すると全く同じ例外がスローされます

答えて

0

私は問題を見つけました! 問題はsolrconfigで、

<lst name="default"> 
    <str name="config">data-config.xml</str> 
</lst> 

<lst name="defaults"> 
    <str name="config">data-config.xml</str> 
</lst> 
されている必要がありました
関連する問題