如何将带有分隔符的文本文件作为字段转换为solr文档

时间:2013-08-19 11:05:59

标签: solr dataimporthandler

我有一个文本文件,其中包含以下数据:

andy~1234;M~64365113~2P3VWU3H10~~
mike~4152;M~64365113~2P3VWU3H10~0.6~MG
lesa~4512;F,PM~~N/A~16~MG
riky~7845;M,PM2~~N/A~3.99~MG

我希望以下列方式将其转换为solr文档:

  
      
  1. 每行在solr中被视为1 <doc>个文档。
  2.   
  3. '〜'是一个分隔符,表示文档的字段<field>
  4.   

我是否需要使用DataImportHandler来处理这些类型的文件?哪种DataImportHandler很有用。我已经完成了LineEntityProcessor,但我不明白如何将它用于我的问题。

1 个答案:

答案 0 :(得分:2)

假设您知道字段名称(行只包含值),这里有一个如何使用FileDatasource + LineEntityProcessor + ScriptTransformer执行此操作的示例:

<dataConfig>  
    <dataSource encoding="UTF-8" type="FileDataSource" name="file-datasource"/>
    <script><![CDATA[
        function parse(row)    
        {
            var rawLine = row.get("rawLine")

            // Split the rawLine 
            // And for each field

            // row.put('fieldName', fieldValue);                    

            return row;
        }
    ]]></script>        
    <document>
        <entity name="jc"
            processor="LineEntityProcessor"
            url="file:///your.path.file.here"
            dataSource="file-datasource"
            transformer="script:parse">
    </document>
</dataConfig>