我正在尝试将 solr 与 DIH 一起使用来索引 csv 文件。我已经使用 solr wiki 上提到的补丁 SOLR-2549 修补了我的 DIH 库(请参阅http://wiki.apache.org/solr/DataImportHandler#Configuration_in_data-config.xml-1),以便在不使用 Transformers 的情况下导入 csv 文件连同 LineEntityProcessor。
不幸的是,我无法进行导入工作,并且出现以下错误堆栈:
INFO: [csv] webapp=/solr path=/dataimport params={command=full-import&optimize=false&clean=true&commit=true&verbose=true} status=0 QTime=33 {deleteByQuery=*:*} 0 33
7 nov. 2012 14:16:03 org.apache.solr.common.SolrException log
GRAVE: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:273)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:382)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:448)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:429)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:413)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:326)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:234)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:542)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:411)
... 5 more
Caused by: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.LineEntityProcessor.initDelimitedOrFixedWidth(LineEntityProcessor.java:142)
at org.apache.solr.handler.dataimport.LineEntityProcessor.init(LineEntityProcessor.java:115)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:74)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:430)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:498)
... 6 more
我认为这与我的数据配置有关。这是我的 data-config.xml 文件:
<dataConfig>
<dataSource name="dfs" type="FileDataSource"/>
<document>
<entity name="sourcefile"
processor="FileListEntityProcessor"
fileName="rocinter.csv"
rootEntity="false"
baseDir="/user/xxx/work/solr/example/example-DIH/solr/csv/inputfolder"
>
<entity name="entryline"
processor="LineEntityProcessor"
url="${sourcefile.fileAbsolutePath}"
rootEntity="true"
dataSource="fds"
separator=","
>
</entity>
</entity>
</document>
</dataConfig>
任何人都可以帮助我理解这个问题或使用修补的 LineEntityProcessor 版本提供一个清晰的配置文件来导入 csv 文件吗?