2017-10-20 63 views
0

我想使用solr處理程序解析csv文件。問題是我的文件可能包含有問題的行(這些行可能包含未轉義的encaptators)。當Solr的找到一個這樣的行,失敗,出現以下消息並停止使用Solr的csv處理程序跳過錯誤行

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

回答

0

我會建議您使用UpdateRequestProcessors預處理和清理數據。

這是一種轉換提交給Solr進行索引的文檔的機制。

查看更多about UpdateRequestProocessors