2017-10-20 4 views
0

Ich möchte eine CSV-Datei mit dem Solr-Handler analysieren. Das Problem besteht darin, dass meine Datei problematische Zeilen enthalten kann (diese Zeilen können unskapierte Encaptulatoren enthalten). Wenn Solr eine solche Linie findet, schlägt mit der folgenden Meldung und stopptÜberspringen fehlerhafter Zeilen bei der Verwendung von Solrs csv-Handler

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

ich, dass der Parser in diesem Fall verstehe nicht die problematische Zeile beheben und diese ok für me.I möchte nur die fehlerhafte Zeile überspringen und mit dem Rest der Datei.

Ich versuchte mit der TolerantUpdateProcessorFactory in meiner Prozessor-Kette, aber das Ergebnis war das gleiche.

Ich benutze solr 6.5.1 und der curl Befehl, ich versuche, ist so etwas wie diese

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' 

Schließlich ist das, was ich in meinem solrconfig.xml

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

Antwort

0

Ich würde vorschlagen, dass Sie verarbeiten die Daten vor und bereinigen sie mithilfe von UpdateRequestProcessors.

Dies ist ein Mechanismus zum Transformieren der Dokumente, die zur Indexierung an Solr übergeben werden.

Lesen Sie mehr über UpdateRequestProocessors

Verwandte Themen