我有一个文本文件,其中包含以下数据:
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文档:
- 每行在solr中被视为1
<doc>
个文档。- '〜'是一个分隔符,表示文档的字段
醇><field>
。
我是否需要使用DataImportHandler来处理这些类型的文件?哪种DataImportHandler很有用。我已经完成了LineEntityProcessor,但我不明白如何将它用于我的问题。
答案 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>