문제

안녕하세요. 다음 내용이있는 파일이 있습니다.캐릭터 '.'공간을 나타냅니다.

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