2016-06-04 9 views
1

Hallo, ich habe folgendes CSVSolr DIH regextransformer - Prozesse nur eine CSV-Zeile

132 1536130302256087040 
133 1536130302256087041 
134 1536130302256087042 

die Felder durch einen Tabulator getrennt sind Datei. Nun habe ich den Dataimporthandler (DIH) für die Solr, und ich versuche, die CSV in Solr zu importieren, aber ich bekomme nur die erste Zeile in solr. Das ist das Ergebnis, aber die anderen Linien aus der CSV fehlen:

"response": { 
    "numFound": 1, 
    "start": 0, 
    "maxScore": 1, 
    "docs": [ { 
     "string": "1536130302256087040", 
     "id": "132", 
     "_version_": 1536202153221161000 
     } ] } 

Hier ist meine Daten-config.xml

<dataConfig> 
<dataSource type="FileDataSource" encoding="UTF-8" name="fds"/> 
    <document> 

    <entity name="f" 
    processor="FileListEntityProcessor" 
    fileName="myfile.csv" 
    baseDir="/var/www/solr-5.4.0/server/csv/files" 
    recursive="false" 
    rootEntity="true" 
    dataSource="null" > 

    <entity 
    onError="continue" 
    name="jc" 
    processor="LineEntityProcessor" 
    url="${f.fileAbsolutePath}" 
    dataSource="fds" 
    rootEntity="true" 
    header="false" 
    separator="\t" 
    transformer="RegexTransformer" > 

    <field column="id" name="id" sourceColName="rawLine" regex="^(.*)\t"/> 
    <field column="string" name="string" sourceColName="rawLine" regex="\t(.*)$"/> 

      </entity>    
     </entity> 
    </document> 
</dataConfig> 

Hier ist meine schema.xml

<field name="id" type="text_general" indexed="true" stored="true" multiValued="false" required="true"/> 
<field name="string" type="text_general" indexed="true" stored="true" multiValued="false"/> 
<field name="_version_" type="long" indexed="true" stored="true"/> 

<uniqueKey>id</uniqueKey> 

Was Ich mache falsch?

Antwort

2

Sie haben rootEntity = true für beide Ebenen von Entitäten. Sie erhalten also nur ein Dokument für die äußere Entität. Versuchen Sie, die äußere Ebene rootEntity auf false festzulegen.

Sie können auch Tab-getrennte Dateien an die Solr mit CSV processor senden, keine DIH erforderlich.