質問

こんにちは私は以下の内容のファイルを持っています。キャラクター '。'スペースを表します。

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

データインポートハンドラを使用して、このデータを3つのフィールドに解析します。これは私がこれまでのものです -

<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+$)" />
.

  • 最初のラインの先頭にあるすべての非空白スペースを一致させます。
  • 2番目の空白以外のすべての非空白、続いて行末の空白と非スペースを、結果から残します。
  • 3番目は、ラインの終わりにある空白以外のすべての空白を一致させて、その結果からそれらを残します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top