使用Solr的csv处理程序时跳过错误的行

时间:2017-10-20 16:20:14

标签: csv solr

我想使用solr处理程序解析csv文件。问题是我的文件可能包含有问题的行(这些行可以包含未转义的包络器)。当Solr找到一条这样的行时,失败并显示以下消息并停止

<str name="msg">CSVLoader: input=null, line=1941,can't read line: 1941
    values={NO LINES AVAILABLE}</str><int name="code">400</int>

据我所知,在这种情况下,解析器无法修复有问题的行,这对我来说没问题。我只想跳过错误的行并继续文件的其余部分。

我尝试在处理器链中使用TolerantUpdateProcessorFactory,但结果是一样的。

我使用solr 6.5.1,我尝试的curl命令就是那样的

curl '<path>/update?update.chain=tolerant&maxErrors=10&commit=true&fieldnames=<my fields are provided>,&skipLines=1' --data-binary @my_file.csv -H 'Content-type:application/csv'

最后这就是我在solrconfig.xml中的内容

 <updateRequestProcessorChain name="tolerant">
   <processor class="solr.TolerantUpdateProcessorFactory">
     <int name="maxErrors">10</int>
   </processor>
   <processor class="solr.RunUpdateProcessorFactory" />
 </updateRequestProcessorChain>

1 个答案:

答案 0 :(得分:0)

我建议您使用UpdateRequestProcessors预处理和清理数据。

这是一种转换提交给Solr以进行索引的文档的机制。

详细了解UpdateRequestProocessors