嗨,我有一个包含以下内容的文件。人物 '。'表示空间。

abc-a-1..............lime..............red........
xyz..................peach.............yellow.....
.

我想使用数据导入处理程序将此数据解析为三个字段。这是我到目前为止的东西 -

<entity name="iCode" processor="LineEntityProcessor" url="file.csv" 
                   dataSource="find_file"
                   transformer="RegexTransformer,TemplateTransformer">

  <field column="code" regex="^(\w*)"  sourceColName="rawLine" />
  <field column="fruit" regex="(\W)\b.*"  sourceColName="rawLine" />
  <field column="color" regex="(\w*)\s*$"  sourceColName="rawLine" />

</entity>
.

导入成功运行,但我没有得到在solr中创建的任何文档。我相信正则表达式不正确。

任何想法我如何能够做到这一点?

有帮助吗?

解决方案

尝试

<field column="code" regex="^(\S+)" />
<field column="fruit" regex="(\S)+(?=\s+\S+\s+$)" />
<field column="color" regex="(\S+)(?=\s+$)" />
.

  • 第一个匹配行开头的所有非白板空间。
  • 第二个匹配所有非白板空间,然后是行的末尾的空格和非空格,将它们脱离结果。
  • 第三个匹配所有非白板空间,然后是线末尾的空格,将它们脱离结果。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top