1

我有一个包含以下数据的文本文件:

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. 每行被视为<doc>solr 中的 1 个文档。
  2. '~' 是一个分隔符,表示文档的字段<field>

我是否需要使用 DataImportHandler 来处理此类文件?哪种 DataImportHandler 有用。我已经通过LineEntityProcessor,但我不明白如何使用它来解决我的问题。

4

1 回答 1

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>   
于 2013-08-21T05:29:22.820 回答